Merge pull request #8010 from qingqing01/ctest_bind_gpu
Make parallel tests bind to different GPU.emailweixu-patch-1
commit
ead15943d9
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# the number of process to run tests
|
||||
NUM_PROC=6
|
||||
|
||||
# calculate and set the memory usage for each process
|
||||
MEM_USAGE=$(printf "%.2f" `echo "scale=5; 1.0 / $NUM_PROC" | bc`)
|
||||
export FLAGS_fraction_of_gpu_memory_to_use=$MEM_USAGE
|
||||
|
||||
# get the CUDA device count
|
||||
CUDA_DEVICE_COUNT=$(nvidia-smi -L | wc -l)
|
||||
|
||||
for (( i = 0; i < $NUM_PROC; i++ )); do
|
||||
cuda_list=()
|
||||
for (( j = 0; j < $CUDA_DEVICE_COUNT; j++ )); do
|
||||
s=$[i+j]
|
||||
n=$[s%CUDA_DEVICE_COUNT]
|
||||
if [ $j -eq 0 ]; then
|
||||
cuda_list=("$n")
|
||||
else
|
||||
cuda_list="$cuda_list,$n"
|
||||
fi
|
||||
done
|
||||
echo $cuda_list
|
||||
# CUDA_VISIBLE_DEVICES http://acceleware.com/blog/cudavisibledevices-masking-gpus
|
||||
# ctest -I https://cmake.org/cmake/help/v3.0/manual/ctest.1.html?highlight=ctest
|
||||
env CUDA_VISIBLE_DEVICES=$cuda_list ctest -I $i,,$NUM_PROC --output-on-failure &
|
||||
done
|
||||
wait
|
Loading…
Reference in new issue