#!/bin/bash source env.sh GPUS=$1 string="" for ((i=0; i<$GPUS; i++)); do string="$string$i," done string=${string%","} export HIP_VISIBLE_DEVICES=$string # echo "$HIP_VISIBLE_DEVICES"\ APP="python3 ../src/train_bash.py --stage sft \ --model_name_or_path ../../baichuan-7b-base \ --do_train \ --template default \ --dataset alpaca_gpt4_en \ --finetuning_type lora \ --lora_rank 16 \ --lora_target W_pack,o_proj,gate_proj,down_proj,up_proj \ --output_dir out/baichuan-7b-lora-test7 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --gradient_accumulation_steps 1 \ --preprocessing_num_workers 8 \ --lr_scheduler_type cosine \ --logging_steps 10 \ --save_steps 2 \ --eval_steps 2 \ --learning_rate 1e-4 \ --max_grad_norm 0.5 \ --num_train_epochs 1.0 \ --val_size 0.001 \ --evaluation_strategy steps \ --load_best_model_at_end \ --plot_loss \ --fp16 \ --deepspeed deepspeed.json " local_rank=$OMPI_COMM_WORLD_LOCAL_RANK echo $local_rank case ${local_rank} in [0]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=0 --membind=0 ${APP} numactl --cpunodebind=0 --membind=0 ${APP} ;; [1]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=0 --membind=0 ${APP} numactl --cpunodebind=0 --membind=0 ${APP} ;; [2]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=0 --membind=0 ${APP} numactl --cpunodebind=0 --membind=0 ${APP} ;; [3]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=0 --membind=0 ${APP} numactl --cpunodebind=0 --membind=0 ${APP} ;; [4]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=3 --membind=3 ${APP} numactl --cpunodebind=3 --membind=3 ${APP} ;; [5]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=3 --membind=3 ${APP} numactl --cpunodebind=3 --membind=3 ${APP} ;; [6]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=3 --membind=3 ${APP} numactl --cpunodebind=3 --membind=3 ${APP} ;; [7]) export HIP_VISIBLE_DEVICES=$string echo numactl --cpunodebind=3 --membind=3 ${APP} numactl --cpunodebind=3 --membind=3 ${APP} ;; esac