Je suis ResNet50 réglage fin du jeu de données CIFAR10 en utilisant un script train_image_classifier.py de tf.slim:formation multi-GPU en utilisant tf.slim prend plus de temps que seul GPU
python train_image_classifier.py \
--train_dir=${TRAIN_DIR}/all \
--dataset_name=cifar10 \
--dataset_split_name=train \
--dataset_dir=${DATASET_DIR} \
--checkpoint_path=${TRAIN_DIR} \
--model_name=resnet_v1_50 \
--max_number_of_steps=3000 \
--batch_size=32 \
--num_clones=4 \
--learning_rate=0.0001 \
--save_interval_secs=10 \
--save_summaries_secs=10 \
--log_every_n_steps=10 \
--optimizer=sgd
Pour 3k étapes, l'exécution de ce sur une seul GPU (Tesla M40) dure environ 30mn, lors de l'exécution sur GPU 4 prend 50 mn. (La précision est similaire dans les deux cas: ~ 75% et ~ 78%).
Je sais que l'une des causes possibles de retard dans les configurations multi-GPU est le chargement des images, mais dans le cas de tf.slim, il utilise le processeur pour cela. Des idées de ce qui pourrait être le problème? Je vous remercie!
La chronologie aiderait à identifier le goulot d'étranglement des performances. Utilisation de la chronologie: http://stackoverflow.com/questions/36123740/-there-a-way-of-determining-how-much-gpu-memory-is-in-use-by-tensorflow/37931964#37931964 –
@YaoZhang J'ai gardé une trace de l'utilisation du GPU à travers nvidia-smi, et il y a des rafales des 4 GPU utilisées à environ 90 +% suivies par des moments de 0%, et chroniquement comme ça tout au long de la formation. Ceci est – Anas
mieux répondre que si vous déposez une question sur [Github] (https://github.com/tensorflow/tensorflow/issues) – keveman