Я недавно перенес свой тренировочный процесс по ML в облако с 2019 года, верно?
Я использую Google Collab, как следует из названия.
Теперь я видел грубые различия в производительности между локальным временем выполнения и временем в облаке, которое можно было ожидать, но это было странно:
Мой локальный процессор @ 1.1 ГГц опережал процессор @ 2.3 ГГц в colab.
Некоторое дальнейшее исследование позже я обнаружил в некоторых ресурсах, обсуждающих зависимости от numpy и scipy, таких как BLAS и ATLAS:
и, конечно, у меня были разные версии локально, чем в облаке.
Теперь возникает вопрос, как выбрать правильную / самую быструю конфигурацию для моего проекта?
Я начал бенчмаркинг на одной конфигурации, которую я запустил, и снова удивился! Colab предлагает 2 аппаратных ускорителя GPU и TPU
НЕТ (чч: мм: сс.мс): 0: 03: 54.237129
GPU (чч: мм: сс.мс): 0: 03: 47,573604
ТПУ (чч: мм: сс.мс): 0: 03: 52.045764
Я бы подумал, что TPU будет лучше, чем GPU, и в этот момент я понял, что действительно недостаточно знаю и мне нужна помощь ^^
Некоторые дальнейшие мысли:
-Я полагаю, поскольку colab использует intel cpus (lscpu сказал intel) и gpus (?) Intel MKL, возможно, стоит посмотреть, но я не запустился, и это был бы еще один пост
numpy.__config__.show()
дает некоторое представление о том, какие зависимости в настоящее время используются numpy: pastebin
Я собрал libgpuarray из исходного кода со следующим набором команд для ext4:
!git clone https://github.com/Theano/libgpuarray.git
%cd libgpuarray
!mkdir Build
%cd Build
!cmake .. -DCMAKE_BUILD_TYPE=Release
!make
!make install
%cd ..
!python setup.py build
!python setup.py install
openBLAS:
!sudo apt-get install libopenblas-dev
, а затем еще кое-что:
!pip install pydot
!pip install pygame
!pip install mido
!pip install keras
и, наконец, я запускаю свой проект с:
!THEANO_FLAGS=blas.ldflags="-L/usr/lib/x86_64-linux-gnu/openblas" python2.7 train.py
Так, каковы шаги, чтобы улучшить скорость моего обучения?
Пожалуйста, не стесняйтесь спрашивать дополнительную информацию, если вам это нужно!
Спасибо за чтение