mirror of
https://github.com/NVIDIA/cuda-samples.git
synced 2025-08-23 23:40:31 +08:00
Merge branch 'shawnz_bug_fix' into 'master'
Bug 5305842 and 5305854: Update CMakeLists for SBSA CUDA Toolkit support on aarch64-linux platforms See merge request cuda-samples/cuda-samples!115
This commit is contained in:
commit
9c0d5aaae6
@ -8,13 +8,10 @@ find_package(CUDAToolkit REQUIRED)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
# Need to differentiate Tegra_aarch64 and other aarch64 systems(sbsa_aarch64) as they have different CUDA_ARCHITECTURES list
|
string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_ctk)
|
||||||
if(${BUILD_TEGRA})
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT _aarch64_ctk EQUAL -1)
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
||||||
else()
|
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 90)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,13 +8,10 @@ find_package(CUDAToolkit REQUIRED)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
# Need to differentiate Tegra_aarch64 and other aarch64 systems(sbsa_aarch64) as they have different CUDA_ARCHITECTURES list
|
string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_ctk)
|
||||||
if(${BUILD_TEGRA})
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT _aarch64_ctk EQUAL -1)
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
||||||
else()
|
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 90)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,13 +8,10 @@ find_package(CUDAToolkit REQUIRED)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
# Need to differentiate Tegra_aarch64 and other aarch64 systems(sbsa_aarch64) as they have different CUDA_ARCHITECTURES list
|
string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_ctk)
|
||||||
if(${BUILD_TEGRA})
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT _aarch64_ctk EQUAL -1)
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
||||||
else()
|
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 90)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,13 +8,10 @@ find_package(CUDAToolkit REQUIRED)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
# Need to differentiate Tegra_aarch64 and other aarch64 systems(sbsa_aarch64) as they have different CUDA_ARCHITECTURES list
|
string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_ctk)
|
||||||
if(${BUILD_TEGRA})
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT _aarch64_ctk EQUAL -1)
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
||||||
else()
|
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 90)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
||||||
endif()
|
endif()
|
||||||
|
@ -8,13 +8,10 @@ find_package(CUDAToolkit REQUIRED)
|
|||||||
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
# Need to differentiate Tegra_aarch64 and other aarch64 systems(sbsa_aarch64) as they have different CUDA_ARCHITECTURES list
|
string(FIND "${CUDAToolkit_INCLUDE_DIRS}" "aarch64-linux" _aarch64_ctk)
|
||||||
if(${BUILD_TEGRA})
|
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT _aarch64_ctk EQUAL -1)
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
set(CMAKE_CUDA_ARCHITECTURES 87 110)
|
||||||
else()
|
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 90)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
set(CMAKE_CUDA_ARCHITECTURES 75 80 86 89 90 100 110 120)
|
||||||
endif()
|
endif()
|
||||||
|
@ -15,9 +15,15 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -ccbin ${CMAKE_CXX_COMPILER}" CACHE ST
|
|||||||
|
|
||||||
# Use a local sysroot copy
|
# Use a local sysroot copy
|
||||||
if(DEFINED TARGET_FS)
|
if(DEFINED TARGET_FS)
|
||||||
|
# The aarch64/sbsa_aarch64 CUDA toolkit are support on Tegra since 13.0, so need to check which version of the toolkit is installed
|
||||||
|
set(CUDA_AARCH64_TARGET "aarch64-linux")
|
||||||
|
if(NOT EXISTS "/usr/local/cuda/targets/${CUDA_AARCH64_TARGET}")
|
||||||
|
set(CUDA_AARCH64_TARGET "sbsa-linux")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(CMAKE_SYSROOT "${TARGET_FS}")
|
set(CMAKE_SYSROOT "${TARGET_FS}")
|
||||||
list(APPEND CMAKE_FIND_ROOT_PATH
|
list(APPEND CMAKE_FIND_ROOT_PATH
|
||||||
"/usr/local/cuda/targets/aarch64-linux"
|
"/usr/local/cuda/targets/${CUDA_AARCH64_TARGET}"
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
@ -51,7 +57,7 @@ if(DEFINED TARGET_FS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED TARGET_CUDA_ROOT)
|
if (DEFINED TARGET_CUDA_ROOT)
|
||||||
list(APPEND CMAKE_LIBRARY_PATH "${TARGET_CUDA_ROOT}/targets/aarch64-linux/lib")
|
list(APPEND CMAKE_LIBRARY_PATH "${TARGET_CUDA_ROOT}/targets/${CUDA_AARCH64_TARGET}/lib")
|
||||||
# Define NVVM paths for build and runtime
|
# Define NVVM paths for build and runtime
|
||||||
set(ENV{LIBNVVM_HOME} "${TARGET_CUDA_ROOT}")
|
set(ENV{LIBNVVM_HOME} "${TARGET_CUDA_ROOT}")
|
||||||
set(RUNTIME_LIBNVVM_PATH "${TARGET_CUDA_ROOT}/nvvm/lib64")
|
set(RUNTIME_LIBNVVM_PATH "${TARGET_CUDA_ROOT}/nvvm/lib64")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user