554b03bed1
[ROCm/rccl commit: f89fd4777d]
44 řádky
1.3 KiB
Bash
Spustitelný soubor
44 řádky
1.3 KiB
Bash
Spustitelný soubor
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2018-2021, NVIDIA CORPORATION. All rights reserved.
|
|
#
|
|
# See LICENSE.txt for license information
|
|
#
|
|
|
|
dir=$1
|
|
|
|
datatypes="i8 u8 i32 u32 i64 u64 f16 f32 f64"
|
|
if [ "$CUDA_MAJOR" -ge 11 ]
|
|
then
|
|
datatypes+=" bf16"
|
|
fi
|
|
|
|
targets="GENOBJS := \\\\\n"
|
|
|
|
for base in sendrecv all_reduce all_gather broadcast reduce reduce_scatter; do
|
|
opn=0
|
|
for op in sum prod min max premulsum sumpostdiv; do
|
|
dtn=0
|
|
# Order must match that of the ncclDataType_t enum
|
|
for dt in ${datatypes}; do
|
|
# Generate a unique filename for each compilation unit,
|
|
# otherwise the __nv_module_id may conflict at link time
|
|
echo "${dir}/${base}_${op}_${dt}.cu : ${base}.cu"
|
|
echo " @printf \"Copying %-35s > %s\\\\n\" \$< \$@"
|
|
echo " cp \$< \$@"
|
|
echo ""
|
|
# Compile the file
|
|
echo "${dir}/${base}_${op}_${dt}.o : ${dir}/${base}_${op}_${dt}.cu ${base}.cu ${dir}/${base}.dep"
|
|
|
|
echo " @printf \"Compiling %-35s > %s\\\\n\" ${base}.cu ${dir}/${base}_${op}_${dt}.o"
|
|
echo " mkdir -p ${dir}"
|
|
echo " \${NVCC} -DNCCL_OP=${opn} -DNCCL_TYPE=${dtn} \${NVCUFLAGS} -dc \$< -o \$@"
|
|
echo ""
|
|
targets="$targets\t${dir}/${base}_${op}_${dt}.o \\\\\n"
|
|
dtn=$(($dtn + 1))
|
|
done
|
|
opn=$(($opn + 1))
|
|
done
|
|
done
|
|
echo -e "$targets"
|