4
0
mirror of https://github.com/nerfstudio-project/nerfstudio.git synced 2026-11-11 18:44:21 +08:00

fixed logic for finding/distributing across GPUS

This commit is contained in:
evonneng 2022-05-24 23:05:19 +00:00
parent 71454a80b9
commit 1bf6d02900

View File

@ -1,14 +1,39 @@
#!/bin/bash
DATASETS=("mic" "ficus" "chair" "hotdog" "materials" "drums" "ship" "lego")
GPU_IDX=1
# Deal with gpu's. If passed in, use those.
GPU_IDX=("$@")
if [ -z "$GPU_IDX" ]; then
echo "no gpus set... finding available gpus"
# Find available devices
num_device=$(nvidia-smi --query-gpu=name --format=csv,noheader | wc -l)
START=0
END=${num_device}-1
GPU_IDX=()
for (( id=$START; id<$END; id++ )); do
free_mem=$(nvidia-smi --query-gpu=memory.free --format=csv -i $id | grep -Eo [0-9]+)
if [[ $free_mem -gt 10000 ]]; then
GPU_IDX+=( $id )
fi
done
fi
echo available gpus... ${GPU_IDX[@]}
DATASETS=("mic" "ficus" "chair" "hotdog" "materials" "drums" "ship" "lego")
date
now=$(date)
tag=$(date +'%m-%d-%Y')
idx=0
len=${#GPU_IDX[@]}
((len=len-1))
for dataset in ${DATASETS[@]}; do
export CUDA_VISIBLE_DEVICES=${!GPU_IDX}
export CUDA_VISIBLE_DEVICES=${GPU_IDX[$idx]}
if [ $idx == $len ]; then
idx=0
else
((idx=idx+1))
fi
python scripts/run_train.py \
'~logging.writer.LocalWriter' \
data.dataset.data_directory=data/blender/${dataset} \
@ -18,6 +43,5 @@ for dataset in ${DATASETS[@]}; do
graph.steps_per_save=25000 \
graph.max_num_iterations=2000000 \
logging.enable_profiler=False &
echo "Launched ${dataset} on gpu ${!GPU_IDX}, ${tag}"
GPU_IDX=$((GPU_IDX+1))
echo "Launched ${dataset} on gpu ${GPU_IDX[$idx]}, ${tag}"
done