C++17 support for LBANN and HIP (#25406)
* Added logic to explicitly pass the c++17 language flags to the HIP/ROCm software stack to ensure that HIP complies with the C++17 requirements.
This commit is contained in:
parent
de0d618730
commit
09fa9cdaae
@ -60,13 +60,16 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage):
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
args = [
|
||||
'-DCMAKE_CXX_STANDARD=14',
|
||||
'-DCMAKE_CXX_STANDARD:STRING=17',
|
||||
'-DALUMINUM_ENABLE_CUDA:BOOL=%s' % ('+cuda' in spec),
|
||||
'-DALUMINUM_ENABLE_NCCL:BOOL=%s' % ('+nccl' in spec or '+rccl' in spec),
|
||||
'-DALUMINUM_ENABLE_ROCM:BOOL=%s' % ('+rocm' in spec)]
|
||||
|
||||
if '+cuda' in spec:
|
||||
args.append('-DCMAKE_CUDA_STANDARD=14')
|
||||
if spec.satisfies('^cuda@11.0:'):
|
||||
args.append('-DCMAKE_CUDA_STANDARD=17')
|
||||
else:
|
||||
args.append('-DCMAKE_CUDA_STANDARD=14')
|
||||
archs = spec.variants['cuda_arch'].value
|
||||
if archs != 'none':
|
||||
arch_str = ";".join(archs)
|
||||
@ -98,13 +101,14 @@ def cmake_args(self):
|
||||
if '+rocm' in spec:
|
||||
args.extend([
|
||||
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
|
||||
'-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
|
||||
'-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc),
|
||||
'-DCMAKE_CXX_FLAGS=-std=c++17'])
|
||||
archs = self.spec.variants['amdgpu_target'].value
|
||||
if archs != 'none':
|
||||
arch_str = ",".join(archs)
|
||||
args.append(
|
||||
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
|
||||
' -g -fsized-deallocation -fPIC'.format(arch_str)
|
||||
' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str)
|
||||
)
|
||||
|
||||
return args
|
||||
|
@ -187,6 +187,7 @@ def cmake_args(self):
|
||||
|
||||
if '+rocm' in spec:
|
||||
args.extend([
|
||||
'-DCMAKE_CXX_FLAGS=-std=c++17',
|
||||
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
|
||||
'-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
|
||||
archs = self.spec.variants['amdgpu_target'].value
|
||||
@ -194,7 +195,7 @@ def cmake_args(self):
|
||||
arch_str = ",".join(archs)
|
||||
args.append(
|
||||
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
|
||||
' -g -fsized-deallocation -fPIC'.format(arch_str)
|
||||
' -g -fsized-deallocation -fPIC -std=c++17'.format(arch_str)
|
||||
)
|
||||
|
||||
return args
|
||||
|
@ -172,6 +172,7 @@ def cmake_args(self):
|
||||
|
||||
if '+rocm' in spec:
|
||||
args.extend([
|
||||
'-DCMAKE_CXX_FLAGS=-std=c++17',
|
||||
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
|
||||
'-DHIP_CXX_COMPILER={0}'.format(self.spec['hip'].hipcc)])
|
||||
archs = self.spec.variants['amdgpu_target'].value
|
||||
@ -180,7 +181,8 @@ def cmake_args(self):
|
||||
cxxflags_str = " ".join(self.spec.compiler_flags['cxxflags'])
|
||||
args.append(
|
||||
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'
|
||||
' -g -fsized-deallocation -fPIC {1}'.format(arch_str, cxxflags_str)
|
||||
' -g -fsized-deallocation -fPIC {1}'
|
||||
' -std=c++17'.format(arch_str, cxxflags_str)
|
||||
)
|
||||
|
||||
# Add support for OS X to find OpenMP (LLVM installed via brew)
|
||||
|
@ -249,6 +249,7 @@ def common_config_args(self):
|
||||
# Environment variables
|
||||
cppflags = []
|
||||
cppflags.append('-DLBANN_SET_EL_RNG')
|
||||
cppflags.append('-std=c++17')
|
||||
args = []
|
||||
args.extend([
|
||||
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(cppflags),
|
||||
|
Loading…
Reference in New Issue
Block a user