Skip to content

Commit c9bb187

Browse files
authored
improve CSCS CI
Support partly MIOpen on MI300
1 parent fe32f5f commit c9bb187

2 files changed

Lines changed: 51 additions & 14 deletions

File tree

ci/cscs-mi300.yml

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,46 @@
11
include:
22
- remote: 'https://gitlab.com/cscs-ci/recipes/-/raw/master/templates/v2/.ci-ext.yml'
33

4-
unit_test:
4+
.unit_test_script: &unit_test_script
5+
- srun -n 1 --uenv $UENV --view=default bash -c '
6+
set -euo pipefail;
7+
shopt -s nullglob;
8+
MERGED_ROCM="$CI_PROJECT_DIR/.rocm-miopen";
9+
rm -rf "$MERGED_ROCM";
10+
mkdir -p "$MERGED_ROCM/lib";
11+
for entry in "$ROCM_PATH"/*; do
12+
name=$(basename "$entry");
13+
[ "$name" = "lib" ] && continue;
14+
ln -s "$entry" "$MERGED_ROCM/$name";
15+
done;
16+
ln -s "$ROCM_PATH"/lib/* "$MERGED_ROCM/lib/";
17+
for libdir in "$MIOPEN_PREFIX/lib" "$MIOPEN_PREFIX/lib64"; do
18+
ln -s "$libdir"/libMIOpen* "$MERGED_ROCM/lib/" 2>/dev/null || true;
19+
done;
20+
export ROCM_PATH="$MERGED_ROCM";
21+
exec "$0" "$@"
22+
' $JULIA --project -e '
23+
println("Instantiating project");
24+
using Pkg;
25+
Pkg.activate(pwd());
26+
Pkg.instantiate();
27+
using AMDGPU;
28+
println("Running tests");
29+
Pkg.test("AMDGPU"; test_args=`--jobs=32`);'
30+
31+
UnitTest julia 1.12:
532
extends: .baremetal-runner-beverin-mi300
633
variables:
734
JULIA: /users/lraess/julia_amd/juliaup/julia-1.12.6+0.x64.linux.gnu/bin/julia
8-
UENV: b2550889de318ab5
35+
UENV: ab517d8a08f537d2
36+
MIOPEN_PREFIX: /user-environment/linux-zen3/miopen-hip-7.2.3-22x3pq72goxi4xwkknlspqhxbx72owes
37+
# Workaround for MIOpen CK Group-Xdlops solvers segfaulting on gfx942 (MI300).
38+
# Remove once fixed upstream: https://github.com/ROCm/rocm-libraries/issues/9088
39+
MIOPEN_DEBUG_CONV_IMPLICIT_GEMM_ASM_FWD_GTC_XDLOPS_NHWC: "0"
40+
MIOPEN_DEBUG_GROUP_CONV_IMPLICIT_GEMM_HIP_FWD_XDLOPS: "0"
41+
MIOPEN_DEBUG_GROUP_CONV_IMPLICIT_GEMM_HIP_WRW_XDLOPS: "0"
42+
MIOPEN_DEBUG_3D_CONV_IMPLICIT_GEMM_HIP_FWD_XDLOPS: "0"
43+
MIOPEN_DEBUG_3D_CONV_IMPLICIT_GEMM_HIP_WRW_XDLOPS: "0"
944
SLURM_JOB_NUM_NODES: 1
1045
SLURM_NTASKS_PER_NODE: 1
1146
SLURM_GPUS_PER_TASK: 2
@@ -15,13 +50,4 @@ unit_test:
1550
JULIA_AMDGPU_CORE_MUST_LOAD: "1"
1651
JULIA_AMDGPU_HIP_MUST_LOAD: "1"
1752
JULIA_AMDGPU_DISABLE_ARTIFACTS: "1"
18-
script:
19-
- srun -n 1 --uenv $UENV --view=default $JULIA --project -e '
20-
println("Instantiating project");
21-
using Pkg;
22-
Pkg.activate(pwd());
23-
Pkg.instantiate();
24-
using AMDGPU;
25-
AMDGPU.versioninfo();
26-
println("Running tests");
27-
Pkg.test("AMDGPU"; test_args=`--jobs=32`);'
53+
script: *unit_test_script

test/hip_dnn/conv.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ using AMDGPU.MIOpen
55

66
@assert AMDGPU.functional(:MIOpen)
77

8+
# ConvHipImplicitGemmGroupBwdXdlops segfaults on gfx942 (MI300, MIOpen 7.2.3)
9+
# and ignores its own MIOPEN_DEBUG disable flag. Skip until fixed upstream:
10+
# https://github.com/ROCm/rocm-libraries/issues/9088
11+
_arch_str = first(split(AMDGPU.HIP.gcn_arch(AMDGPU.device()), ':'))
12+
_skip_bwd_data = _arch_str == "gfx942"
13+
_skip_bwd_data && @info "Skipping convolution backward-data tests (MIOpen bug on gfx942)"
14+
815
@testset "Simple Convolution" begin
916
for T in (Float16, Float32), nd in 2:3
1017
ndims = Val{nd}()
@@ -27,8 +34,12 @@ using AMDGPU.MIOpen
2734
∇w = MIOpen.∇convolution_weight(Δ, x, w; padding, stride, dilation, groups)
2835
@test size(∇w) == size(w)
2936

30-
∇x = MIOpen.∇convolution_data(Δ, x, w; padding, stride, dilation, groups)
31-
@test size(∇x) == size(x)
37+
if _skip_bwd_data
38+
@test_skip false
39+
else
40+
∇x = MIOpen.∇convolution_data(Δ, x, w; padding, stride, dilation, groups)
41+
@test size(∇x) == size(x)
42+
end
3243
end
3344
end
3445

0 commit comments

Comments
 (0)