ampere build issue
Building on perlmutter, which has A100s.
For sm_80
we pass ampere
as VTKm_CUDA_Architecture
, which results in:
Here is my config:
==> [2022-01-27-12:27:59.572028] 'cmake' '-G' 'Unix Makefiles' '-DCMAKE_INSTALL_PREFIX:STRING=/pscratch/sd/c/cyrush/ASCENT_INSTALL/2022_01_27/spack/opt/spack/cray-sles15-zen3/gcc-10.3.0/vtk-m-1.7.0-d2pg3lzhq4xftoztqnqhrhpzarsa7u45' '-DCMAKE_BUILD_TYPE:STRING=Release' '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=OFF' '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF' '-DCMAKE_INSTALL_RPATH:STRING=/pscratch/sd/c/cyrush/ASCENT_INSTALL/2022_01_27/spack/opt/spack/cray-sles15-zen3/gcc-10.3.0/vtk-m-1.7.0-d2pg3lzhq4xftoztqnqhrhpzarsa7u45/lib;/pscratch/sd/c/cyrush/ASCENT_INSTALL/2022_01_27/spack/opt/spack/cray-sles15-zen3/gcc-10.3.0/vtk-m-1.7.0-d2pg3lzhq4xftoztqnqhrhpzarsa7u45/lib64;/opt/nvidia/hpc_sdk/Linux_x86_64/21.9/cuda/11.4/lib64;/opt/nvidia/hpc_sdk/Linux_x86_64/21.9/cuda/11.4' '-DCMAKE_PREFIX_PATH:STRING=/pscratch/sd/c/cyrush/ASCENT_INSTALL/2022_01_27/spack/opt/spack/cray-sles15-zen3/gcc-10.3.0/cmake-3.21.1-uyxhobwscsp3fodrb4glfvzspovjn2n7;/opt/nvidia/hpc_sdk/Linux_x86_64/21.9/cuda/11.4' '-DVTKm_ENABLE_TESTING:BOOL=OFF' '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON' '-DVTKm_ENABLE_TESTING_LIBRARY:BOOL=ON' '-DBUILD_SHARED_LIBS=OFF' '-DVTKm_USE_DOUBLE_PRECISION:BOOL=ON' '-DVTKm_ENABLE_LOGGING:BOOL=OFF' '-DVTKm_ENABLE_MPI:BOOL=OFF' '-DVTKm_ENABLE_RENDERING:BOOL=ON' '-DVTKm_USE_DEFAULT_TYPES_FOR_ASCENT:BOOL=ON' '-DVTKm_NO_DEPRECATED_VIRTUAL:BOOL=ON' '-DVTKm_USE_64BIT_IDS:BOOL=OFF' '-DVTKm_ENABLE_CUDA:BOOL=ON' '-DCMAKE_CUDA_HOST_COMPILER=/opt/cray/pe/craype/2.7.12/bin/CC' '-DVTKm_CUDA_Architecture=ampere' '-DVTKm_ENABLE_HIP:BOOL=OFF' '-DVTKm_ENABLE_OPENMP:BOOL=OFF' '-DVTKm_ENABLE_TBB:BOOL=OFF' '/tmp/cyrush/spack-stage/spack-stage-vtk-m-1.7.0-d2pg3lzhq4xftoztqnqhrhpzarsa7u45/spack-src'
elseif(VTKm_CUDA_Architecture STREQUAL "ampere")
set(arch_flags --generate-code=arch=compute_80,code=sm_80)
set(arch_flags --generate-code=arch=compute_86,code=sm_86)
This seems to result in libs that only have sm_86
cuobjdump libvtkm_cont-1.7.a
...
...
Fatbin elf code:
================
arch = sm_86
code version = [1,7]
producer = <unknown>
host = linux
compile_size = 64bit
We need sm_80
b/c sm_86
executable won't run on A100.
https://en.wikipedia.org/wiki/CUDA#Supported_GPUs
(I tested example hello world with both sm_80
and sm_86
, and only the sm_80
runs)
Edited by Cyrus Harrison