Skip to content

Commit 9950110

Browse files
authored
Merge pull request #206 from zerefwayne/eessi-extend-amd
Add configuration for AMD to EESSI-extend-easybuild.eb
2 parents 1867d06 + 6daf5c3 commit 9950110

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

EESSI-extend-easybuild.eb

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,27 +93,31 @@ working_dir = os.getenv("WORKING_DIR") or pathJoin("/tmp", os.getenv("USER"))
9393
-- Gather the EPREFIX to use as a sysroot
9494
sysroot = os.getenv("EESSI_EPREFIX")
9595
96-
-- Check if we have GPU capabilities and configure CUDA compute capabilities
96+
-- Check if we have GPU capabilities and configure AMD/CUDA compute capabilities
9797
eessi_accelerator_target = os.getenv("EESSI_ACCELERATOR_TARGET")
9898
if (eessi_accelerator_target ~= nil) then
9999
cuda_compute_capability = string.match(eessi_accelerator_target, "^accel/nvidia/cc([0-9]+)$")
100+
amd_compute_capability = string.match(eessi_accelerator_target, "^accel/amd/(gfx[0-9a-f]+)$")
101+
100102
if (cuda_compute_capability ~= nil) then
101103
-- The last digit should be the minor version, insert a dot in the one-but-last position
102104
major_version = cuda_compute_capability:sub(1, #cuda_compute_capability - 1)
103105
minor_version = cuda_compute_capability:sub(#cuda_compute_capability)
104106
easybuild_cuda_compute_capabilities = string.format("%s.%s", major_version, minor_version)
107+
108+
-- If architectures are 9.0, 10.0 or 12.0, enable architecture or family-specific optimizations
109+
if easybuild_cuda_compute_capabilities == '9.0' then
110+
easybuild_cuda_compute_capabilities = '9.0a'
111+
elseif easybuild_cuda_compute_capabilities == '10.0' then
112+
easybuild_cuda_compute_capabilities = '10.0f'
113+
elseif easybuild_cuda_compute_capabilities == '12.0' then
114+
easybuild_cuda_compute_capabilities = '12.0f'
115+
end
116+
elseif (amd_compute_capability ~= nil) then
117+
easybuild_amdgcn_compute_capabilities = amd_compute_capability
105118
else
106119
LmodError("Incorrect value for $EESSI_ACCELERATOR_TARGET: " .. eessi_accelerator_target)
107120
end
108-
109-
-- If architectures are 9.0, 10.0 or 12.0, enable architecture or family-specific optimizations
110-
if easybuild_cuda_compute_capabilities == '9.0' then
111-
easybuild_cuda_compute_capabilities = '9.0a'
112-
elseif easybuild_cuda_compute_capabilities == '10.0' then
113-
easybuild_cuda_compute_capabilities = '10.0f'
114-
elseif easybuild_cuda_compute_capabilities == '12.0' then
115-
easybuild_cuda_compute_capabilities = '12.0f'
116-
end
117121
end
118122
119123
-- Some environment variables affect behaviour, let's gather them once
@@ -202,6 +206,11 @@ if (easybuild_cuda_compute_capabilities ~= nil) then
202206
setenv ("EASYBUILD_CUDA_COMPUTE_CAPABILITIES", easybuild_cuda_compute_capabilities)
203207
end
204208
209+
-- Set environment variables if building for AMDGCN compute capabilities
210+
if (easybuild_amdgcn_compute_capabilities ~= nil) then
211+
setenv ("EASYBUILD_AMDGCN_CAPABILITIES", easybuild_amdgcn_compute_capabilities)
212+
end
213+
205214
-- Set all related environment variables if we have project or user installations (including extending MODULEPATH)
206215
if (user_modulepath ~= nil) then
207216
-- Use a more restrictive umask for this case

0 commit comments

Comments
 (0)