mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Document ROCm environment variables and improve CMake messaging to user (#137308)
Fixes #115725. Note that the github issue title is misleading. Read the comments to understand what the problem is really about. The PR improves the documentation and CMake's behavior for ROCM builds. - Documentation: There were two environment variables for ROCm builds that are now documented. `ROCM_PATH` and `PYTORCH_ROCM_ARCH`. - CMake: Improved diagnostic messaging and error handling with respect to `ROCM_PATH` Pull Request resolved: https://github.com/pytorch/pytorch/pull/137308 Approved by: https://github.com/pruthvistony, https://github.com/jithunnair-amd, https://github.com/jeffdaily
This commit is contained in:
committed by
PyTorch MergeBot
parent
f394fb554b
commit
b9c9f7f0fa
@ -208,6 +208,8 @@ If you want to compile with ROCm support, install
|
||||
- [AMD ROCm](https://rocm.docs.amd.com/en/latest/deploy/linux/quick_start.html) 4.0 and above installation
|
||||
- ROCm is currently supported only for Linux systems.
|
||||
|
||||
By default the build system expects ROCm to be installed in `/opt/rocm`. If ROCm is installed in a different directory, the `ROCM_PATH` environment variable must be set to the ROCm installation directory. The build system automatically detects the AMD GPU architecture. Optionally, the AMD GPU architecture can be explicitly set with the `PYTORCH_ROCM_ARCH` environment variable [AMD GPU architecture](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html#supported-gpus)
|
||||
|
||||
If you want to disable ROCm support, export the environment variable `USE_ROCM=0`.
|
||||
Other potentially useful environment variables may be found in `setup.py`.
|
||||
|
||||
|
@ -1,19 +1,33 @@
|
||||
set(PYTORCH_FOUND_HIP FALSE)
|
||||
|
||||
if(NOT DEFINED ENV{ROCM_PATH})
|
||||
set(ROCM_PATH /opt/rocm)
|
||||
else()
|
||||
# If ROCM_PATH is set, assume intention is to compile with
|
||||
# ROCm support and error out if the ROCM_PATH does not exist.
|
||||
# Else ROCM_PATH does not exist, assume a default of /opt/rocm
|
||||
# In the latter case, if /opt/rocm does not exist emit status
|
||||
# message and return.
|
||||
if(DEFINED ENV{ROCM_PATH})
|
||||
set(ROCM_PATH $ENV{ROCM_PATH})
|
||||
if(NOT EXISTS ${ROCM_PATH})
|
||||
message(FATAL_ERROR
|
||||
"ROCM_PATH environment variable is set to ${ROCM_PATH} but does not exist.\n"
|
||||
"Set a valid ROCM_PATH or unset ROCM_PATH environment variable to fix.")
|
||||
endif()
|
||||
else()
|
||||
set(ROCM_PATH /opt/rocm)
|
||||
if(NOT EXISTS ${ROCM_PATH})
|
||||
message(STATUS
|
||||
"ROCM_PATH environment variable is not set and ${ROCM_PATH} does not exist.\n"
|
||||
"Building without ROCm support.")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ENV{ROCM_INCLUDE_DIRS})
|
||||
set(ROCM_INCLUDE_DIRS ${ROCM_PATH}/include)
|
||||
else()
|
||||
set(ROCM_INCLUDE_DIRS $ENV{ROCM_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${ROCM_PATH})
|
||||
return()
|
||||
endif()
|
||||
|
||||
# MAGMA_HOME
|
||||
if(NOT DEFINED ENV{MAGMA_HOME})
|
||||
|
Reference in New Issue
Block a user