Skip to content

Commit

Permalink
Merge pull request #348 from ROCm/develop
Browse files Browse the repository at this point in the history
Sync develop from internal for 6.2.4 (#347)
  • Loading branch information
alexxu-amd authored Nov 6, 2024
2 parents 59cfe6c + d9a5c6a commit 81e7c36
Show file tree
Hide file tree
Showing 38 changed files with 889 additions and 259 deletions.
16 changes: 8 additions & 8 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# ROCm version numbers
rocm_version = '6.2.2'
rocm_multi_versions = '6.2.2 6.2.1' # in 6.2, the folder names on repo.radeon.com use 6.2 for minor releases
rocm_multi_versions_package_versions = '6.2.2 6.2.1' # however, in multi, the packages use 6.2.0
rocm_directory_version = '6.2.2' # in 6.0 rocm was located in /opt/rocm-6.0.0
amdgpu_version = '6.2.2' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/
amdgpu_install_version = '6.2.60202-1' # version in https://repo.radeon.com/amdgpu-install/6.0.2/ubuntu/jammy/
rocm_version = '6.2.4'
rocm_multi_versions = '6.2.4 6.2.2' # in 6.2, the folder names on repo.radeon.com use 6.2 for minor releases
rocm_multi_versions_package_versions = '6.2.4 6.2.2' # however, in multi, the packages use 6.2.0
rocm_directory_version = '6.2.4' # in 6.0 rocm was located in /opt/rocm-6.0.0
amdgpu_version = '6.2.4' # directory in https://repo.radeon.com/rocm/apt/ and https://repo.radeon.com/amdgpu-install/
amdgpu_install_version = '6.2.60204-1' # version in https://repo.radeon.com/amdgpu-install/6.0.2/ubuntu/jammy/


latex_engine = "xelatex"
Expand All @@ -26,8 +26,8 @@
project = "ROCm installation on Linux"
author = "Advanced Micro Devices, Inc."
copyright = "Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved."
version = "6.2.2"
release = "6.2.2"
version = "6.2.4"
release = "6.2.4"
setting_all_article_info = True
all_article_info_os = ["linux"]
all_article_info_author = ""
Expand Down
1 change: 1 addition & 0 deletions docs/reference/system-requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Accelerators and GPUs listed in the following table support compute workloads (n
:widths: 50, 25, 25, 10
:header: "GPU", "Architecture", "LLVM target", "Support"

"AMD Radeon PRO V710", "RDNA3", "gfx1101", "✅"
"AMD Radeon PRO W7900 Dual Slot", "RDNA3", "gfx1100", "✅"
"AMD Radeon PRO W7900", "RDNA3", "gfx1100", "✅"
"AMD Radeon PRO W7800", "RDNA3", "gfx1100", "✅"
Expand Down
4 changes: 3 additions & 1 deletion src/offline-installer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,8 @@ set(IS_ROCM_611_DISABLED 0)
set(IS_ROCM_612_DISABLED 0)
set(IS_ROCM_613_DISABLED 0)
set(IS_ROCM_62_DISABLED 0)
set(IS_ROCM_621_DISABLED 0)
set(IS_ROCM_622_DISABLED 0)

# Disable ROCm tests older than 6.2 for sles 15.6, rhel 8.10, rhel 9.4 and ubuntu 24.04
if (IS_SLES_156 OR IS_RHEL_810 OR IS_RHEL_94 OR IS_UBUNTU_2404)
Expand Down Expand Up @@ -218,7 +220,7 @@ add_custom_target(rocm_offline_creator ALL
COMMAND echo "Copy the help_menus directory"
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/UI/help_menus ${SCRIPT_DIRECTORY}/help_menus/
COMMAND echo "Building rocm_offline_creator"
COMMAND makeself ${MAKESELF_OPTIONS} ${SCRIPT_DIRECTORY} ${PACKAGE_NAME}.run "ROCm Offline Install Creator" ./offline_init.sh)
COMMAND makeself ${MAKESELF_OPTIONS} --nox11 ${SCRIPT_DIRECTORY} ${PACKAGE_NAME}.run "ROCm Offline Install Creator" ./offline_init.sh)

# UI
add_subdirectory(UI)
Expand Down
75 changes: 42 additions & 33 deletions src/offline-installer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,22 @@ The offline tool is designed to support the follow list of Linux Distros:

ROCm versions enabled for each distro.

| OS Name | 5.7.3 | 6.0 | 6.0.1 | 6.0.2 | 6.0.3 | 6.1 | 6.1.1 | 6.1.2 | 6.1.3 | 6.2 |
| :--- | :----: | :----: | :----: | :----: | :----:| :----: | :----: | :----: | :----: | :----: |
| Ubuntu 20.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 22.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 24.04 | No | No | No | No | No | No | No | No | No | Yes |
| Rhel 8.9 | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 8.10 | No | No | No | No | No | No | No | No | No | Yes |
| Rhel 9.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.3 | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.4 | No | No | No | No | No | No | No | No | No | Yes |
| Suse 15.5 | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Suse 15.6 | No | No | No | No | No | No | No | No | No | Yes |
| OS Name | 5.7.3 | 6.0 | 6.0.1 | 6.0.2 | 6.0.3 | 6.1.x | 6.2.x |
| :--- | :----: | :----: | :----: | :----: | :----:| :----: | :----: |
| Ubuntu 20.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 22.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 24.04 | No | No | No | No | No | No | Yes |
| Rhel 8.9 | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 8.10 | No | No | No | No | No | No | Yes |
| Rhel 9.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.3 | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.4 | No | No | No | No | No | No | Yes |
| Suse 15.5 | Yes | No | No | No | Yes | Yes | Yes |
| Suse 15.6 | No | No | No | No | No | No | Yes |

## ROCm Usecases Support Notes

`multimediasdk` is not supported on ROCm 5.7.3 and on 6.2+

## Building

Expand Down Expand Up @@ -162,6 +166,7 @@ The Offline creator tool may also be run with the following options:
* prompt : enables user prompts during offline installer creation.
* config= : specifies the full path to a .config file containing an offline installer
configuration. This parameter is used for testing purposes (see Testing).
* wconfig= : specifies the full path to a .config file that will be created with create settings chosen by user in the GUI and exit without creating an installer package. This paramter is used for testing purposes.

For example, to enable user prompts, use the following:

Expand All @@ -188,20 +193,24 @@ The installer package may also be run with the following options:
* prompt : enables user prompts during installion process.
* dryrun : simulates the installation process without installing associated packages.

### Log Files

By default, the Offline Installer creator will record it's execution output to log files located in the /var/log/offline_creator directory. The output of both creation and installation processes will written out to this directory.

## Testing

Testing of the offline creator tool has pre-set tests that maybe run to validate some of common installer configurations simulating and testing the creation of the target offline installer and running of the outputted installer.

Tests are based on the ROCm version and on the usecase being installed:

* ROCm Version: `5.7.3, 6.0.2, 6.1, 6.1.1, 6.1.2, 6.1.3, and 6.2`
* ROCm Version: `5.7.3, 6.0.2, 6.1.x, and 6.2.x`

* Usecases : `ROCm only, Driver only, ROCm + Driver, rocm + graphics, hip + hiplibsdk`

* ROCm only = Create an installer for the ROCm usecase only.
* Driver only = Create an installer for the amdgpu driver only.
* ROCm + Driver = Create an installer for both the ROCm usecase and the amdgpu driver.
* ROCm,graphics = Create an installer for the rocm,graphics usecase.
* ROCm only = Create an installer for the ROCm usecase only.
* Driver only = Create an installer for the amdgpu driver only.
* ROCm + Driver = Create an installer for both the ROCm usecase and the amdgpu driver.
* ROCm,graphics = Create an installer for the rocm,graphics usecase.
* Hip, Hiplibsdk = Create an installer for the hip,hiplibsdk usescase.

### Test Build
Expand All @@ -226,25 +235,25 @@ From the build location of the offline tool, run the following:
ctest
```

A total of 70 tests will be run:
A total of 90 tests will be run:

ROCm Version

* 6.2 : ROCm only, Driver only, ROCm + Driver, ROCm + graphics, hip + hiplibsdk
* 6.2.x: ROCm only, Driver only, ROCm + Driver, ROCm + graphics, hip + hiplibsdk
* 6.1.x: ROCm only, Driver only, ROCm + Driver, ROCm + graphics, hip + hiplibsdk
* 6.0.2: ROCm only, Driver only, ROCm + Driver, ROCm + graphics, hip + hiplibsdk
* 5.7.3: ROCm only, Driver only, ROCm + Driver, ROCm + graphics, hip + hiplibsdk

#### ROCm Version Test

Subsets of the “Full” test can be selected and run via Ctest for specific versions of ROCm (5.7.3, 6.0.2, 6.1, etc.).
Subsets of the “Full” test can be selected and run via Ctest for specific versions of ROCm (5.7.3, 6.0.2, 6.1.0, etc.).
From the build location of the offline tool, run the following:

``` shell
ctest -L <rocm-version>
```

rocm-version = 5.7.3, 6.0.2, 6.1, 6.1.1, 6.1.2, 6.1.3, or 6.2
rocm-version = 5.7.3, 6.0.2, 6.1.x, or 6.2.x

#### CI Test

Expand All @@ -260,18 +269,18 @@ ctest -L ci
A matrix describing what ROCm ctests are enabled for each distro.
NOTE: There are no ctests for rocm versions 6.0.0, 6.0.1 and 6.0.3

| OS Name | 5.7.3 | 6.0.2 | 6.1 | 6.1.1 | 6.1.2 | 6.1.3 | 6.2 |
| :--- | :----: | :----:| :----: | :----: | :----: | :----: | :----: |
| Ubuntu 20.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 22.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Ubuntu 24.04 | No | No | No | No | No | No | Yes |
| Rhel 8.9 | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 8.10 | No | No | No | No | No | No | Yes |
| Rhel 9.2 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.3 | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Rhel 9.4 | No | No | No | No | No | No | Yes |
| Suse 15.5 | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Suse 15.6 | No | No | No | No | No | No | Yes |
| OS Name | 5.7.3 | 6.0.2 | 6.1.x | 6.2.x |
| :--- | :----: | :----: | :----: | :----: |
| Ubuntu 20.04 | Yes | Yes | Yes | Yes |
| Ubuntu 22.04 | Yes | Yes | Yes | Yes |
| Ubuntu 24.04 | No | No | No | Yes |
| Rhel 8.9 | No | Yes | Yes | Yes |
| Rhel 8.10 | No | No | No | Yes |
| Rhel 9.2 | Yes | Yes | Yes | Yes |
| Rhel 9.3 | No | Yes | Yes | Yes |
| Rhel 9.4 | No | No | No | Yes |
| Suse 15.5 | Yes | Yes | Yes | Yes |
| Suse 15.6 | No | No | No | Yes |

### Test Run using .config

Expand Down
5 changes: 4 additions & 1 deletion src/offline-installer/UI/src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
#include "install_types.h"

// Menus default installer type
#define DEFAULT_INSTALLER_TYPE eINSTALL_TYPE_REPO_PUBLIC
#define DEFAULT_INSTALLER_TYPE eINSTALL_TYPE_REPO_PUBLIC

#define INSTALLER_CREATION_LOG_SIZE 50 // /var/log/offline_creator/create_[UNIX_TIME].log


/* Create Menu Configuration ************************************************************************/
Expand Down Expand Up @@ -61,6 +63,7 @@ typedef struct _CREATE_MENU_CONFIG

char installer_name[256];
char installer_name_with_extension[260];
char installer_creation_log_out_location[INSTALLER_CREATION_LOG_SIZE];

char installer_out_location[256];
bool is_installer_loc_valid;
Expand Down
21 changes: 18 additions & 3 deletions src/offline-installer/UI/src/create_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "help_menu.h"
#include "utils.h"

#include <time.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
Expand Down Expand Up @@ -50,7 +51,7 @@ char *createMenuDesc[] = {
CREATE_MENU_ITEM_DEP_DOWNLOAD_FULL_DESC,
" ",
"Output name for the created offline installer. A .run extension will be added to the filename.",
"Output location for the created offline installer",
"Output location for the created offline installer.",
" ",
DEFAULT_VERBOSE_HELP_WINDOW_MSG,
"Exit to Main Menu",
Expand Down Expand Up @@ -168,6 +169,7 @@ void create_config_menu_window(MENU_DATA *pMenuData, WINDOW *pMenuWindow, OFFLIN
pCreateConfig->currentInstallDLType = eDL_TYPE_FULL;
sprintf(pCreateConfig->installer_name, "%s", CREATE_MENU_DEFAULT_INSTALLER_NAME);
sprintf(pCreateConfig->installer_name_with_extension, "%s.run", CREATE_MENU_DEFAULT_INSTALLER_NAME);
sprintf(pCreateConfig->installer_creation_log_out_location, "%s/create_%lu.log", CREATE_MENU_INSTALLER_LOG_OUT_PATH, time(NULL));

sprintf(pCreateConfig->installer_out_location, "%s", get_home_directory());
pCreateConfig->is_installer_loc_valid = true; // home directory is valid
Expand All @@ -181,6 +183,7 @@ void create_config_menu_window(MENU_DATA *pMenuData, WINDOW *pMenuWindow, OFFLIN
menu_set_item_select(pMenuData, CREATE_MENU_ITEM_INSTALLER_INPUT_INDEX, false); // installer input
menu_set_item_select(pMenuData, CREATE_MENU_ITEM_REPO_TYPE_INDEX, false); // repo
menu_set_item_select(pMenuData, 2, false); // space after repo
menu_set_item_select(pMenuData, CREATE_MENU_ITEM_DEP_DOWNLOAD_INDEX, !is_rocm_installed()); // dependency download type
menu_set_item_select(pMenuData, 4, false); // space after dep
menu_set_item_select(pMenuData, pMenuData->itemList[0].numItems - 4, false); // space before <HELP>

Expand All @@ -196,6 +199,8 @@ void create_config_menu_window(MENU_DATA *pMenuData, WINDOW *pMenuWindow, OFFLIN
set_field_buffer(pMenuData->pFormList.field[0], 0, CREATE_MENU_DEFAULT_INSTALLER_NAME);
set_field_buffer(pMenuData->pFormList.field[1], 0, pCreateConfig->installer_out_location);


pMenuData->clearErrMsgAfterUpOrDownKeyPress = true;
}

void destroy_config_menu_window(MENU_DATA *pMenuData)
Expand All @@ -211,7 +216,7 @@ void create_menu_draw(MENU_DATA *pMenuData)
OFFLINE_INSTALL_CONFIG *pConfig = pMenuData->pConfig;
CREATE_MENU_CONFIG *pCreateConfig = &pConfig->create_confg;

char drawName[256];
char drawName[DEFAULT_CHAR_SIZE];

// draw the installer input type/repo
wmove(pMenuWindow, CREATE_MENU_ITEM_INSTALLER_INPUT_ROW, CREATE_MENU_FORM_COL);
Expand Down Expand Up @@ -253,7 +258,7 @@ void create_menu_draw(MENU_DATA *pMenuData)
wattron(pMenuWindow, COLOR_PAIR(4));
mvwprintw(pMenuWindow, CREATE_MENU_ITEM_DEP_DOWNLOAD_ROW, CREATE_MENU_FORM_COL, "%s", createMenuDLTypes[pCreateConfig->currentInstallDLType].download_dep_name);
wattroff(pMenuWindow, COLOR_PAIR(4));

// draw the main create menu
menu_draw(pMenuData);
}
Expand Down Expand Up @@ -286,6 +291,8 @@ void do_create_menu(MENU_DATA *pMenuData)
{
MENU *pMenu = pMenuData->pMenu;

wclear(pMenuData->pMenuWindow);

// draw the create menu contents
create_menu_draw(pMenuData);

Expand All @@ -312,6 +319,10 @@ void process_create_menu(MENU_DATA *pMenuData)

DEBUG_UI_MSG(pMenuData, "create menu: item %d", curMenuItemIndex);

bool isSelectable = item_opts(pCurrentItem) == O_SELECTABLE;

if (!isSelectable) return;

if (pForm)
{
ptrFormFnc = form_userptr(pForm);
Expand Down Expand Up @@ -384,6 +395,10 @@ void process_create_menu_item(MENU_DATA *pMenuData)
// dependency download type
else if (curMenuItemIndex == 3)
{
if (is_rocm_installed())
{
print_menu_warning_msg(pMenuData, DOWNLOAD_DEP_WARN_ERR_START_Y, DOWNLOAD_DEP_WARN_ERR_START_X, "'minimum' unavailable when ROCm is installed on host.");
}
if (pCreateConfig->currentInstallDLType == eDL_TYPE_FULL)
{
print_menu_item_selection_opt(pMenuData, MENU_SEL_START_Y, MENU_SEL_START_X, CREATE_MENU_ITEM_DEP_DOWNLOAD_FULL_DESC);
Expand Down
6 changes: 6 additions & 0 deletions src/offline-installer/UI/src/create_menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@

#define CREATE_MENU_DEFAULT_INSTALLER_NAME "rocm-offline-install"

#define CREATE_MENU_INSTALLER_LOG_OUT_PATH "/var/log/offline_creator"


// warning message for download dependency minimum restriction
#define DOWNLOAD_DEP_WARN_ERR_START_Y WARN_ERR_START_Y + 1
#define DOWNLOAD_DEP_WARN_ERR_START_X WARN_ERR_START_X

// item descriptions for options within specific menu items
#define CREATE_MENU_ITEM_INSTALLER_INPUT_PUBLIC_DESC "Input source for packages used in offline installer creation. 'repo-public' provides packages from repo.radeon.com"
Expand Down
3 changes: 2 additions & 1 deletion src/offline-installer/UI/src/driver_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ void do_driver_menu(MENU_DATA *pMenuData)
{
MENU *pMenu = pMenuData->pMenu;

wclear(pMenuData->pMenuWindow);

driver_menu_toggle_grey_items(pMenuData);

Expand Down Expand Up @@ -281,7 +282,7 @@ void process_driver_menu(MENU_DATA *pMenuData)
menu_info_draw_bool(pMenuData, DRIVER_MENU_ITEM_INSTALL_DRIVER_ROW, DRIVER_MENU_FORM_COL, pDriverConfig->install_driver);
if (!pDriverConfig->install_driver && is_specific_usecase_selected(pMenuData, "workstation"))
{
print_menu_warning_msg(pMenuData, "workstation is not supported when install driver is set to no");
print_menu_warning_msg(pMenuData, WARN_ERR_START_Y, WARN_ERR_START_X, "workstation is not supported when install driver is set to no");
}
else
{
Expand Down
2 changes: 2 additions & 0 deletions src/offline-installer/UI/src/extras_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ void do_extras_menu(MENU_DATA *pMenuData)
{
MENU *pMenu = pMenuData->pMenu;

wclear(pMenuData->pMenuWindow);

// draw the extras menu contents
extras_menu_draw(pMenuData);

Expand Down
Loading

0 comments on commit 81e7c36

Please sign in to comment.