Нам нужно обучить большие сети с помощью TensorFlow, что занимает несколько дней на графическом процессоре. Amazon предлагает такие экземпляры GPU, как p2.16xlarge
например, с 16 графических процессоров (NVIDIA K80). Теперь мне было интересно, использует ли TensorFlow несколько графических процессоров эффективно или я буду так же быстро, используя рабочий стол с одним Titan X?
Эти экземпляры GPU довольно дороги, поэтому я собираюсь собрать машину самостоятельно (на базе Linux). SLI, похоже, не работает с CUDA, так что я застрял с 1 графическим процессором за раз?
TensorFlow очень эффективно использует несколько графических процессоров при использовании соответствующего скрипта, например. cifar10_multi_gpu_train.py
python cifar10_multi_gpu_train.py --num_gpus=X
Заменить X
с количеством графических процессоров. Рабочая нагрузка делится и распределяется между графическими процессорами, и они приняли во внимание такие вещи, как относительно медленная передача данных между графическими процессорами, за счет задействования центрального процессора для компенсации.
Использование 16 x Nvidia k80 должно быть намного быстрее, чем использование одного Titan X, но насколько быстрее, трудно сказать. Если вы счастливы, что это займет больше времени, то, очевидно, не тратьте деньги - вам решать, оправдает ли экономия времени затраты.
Дальнейшие подробности: https://www.tensorflow.org/tutorials/deep_cnn/#training_a_model_using_multiple_gpu_cards