vak: (Default)
[personal profile] vak
Устанавливаю tensorflow на Убунту из стандартного пакета: "pip install tensorflow". Запускаю пример из книжки:

$ python mnist_training.py
Using TensorFlow backend.
2018-06-24 16:12:35.542752: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Epoch 1/5
60000/60000 [==============================] - 4s 66us/step - loss: 0.2575 - acc: 0.9259
Epoch 2/5
60000/60000 [==============================] - 4s 64us/step - loss: 0.1047 - acc: 0.9688
Epoch 3/5
60000/60000 [==============================] - 4s 65us/step - loss: 0.0696 - acc: 0.9794
Epoch 4/5
60000/60000 [==============================] - 4s 65us/step - loss: 0.0494 - acc: 0.9850
Epoch 5/5
60000/60000 [==============================] - 4s 65us/step - loss: 0.0383 - acc: 0.9888
10000/10000 [==============================] - 0s 34us/step
Test set accuracy: 0.9797

На одну итерацию уходит 65 микросекунд. Процессор моего ноутбука поддерживает совмещённое умножение-сложение (FMA) и 256-битные векторные регистры (AVX2), которые не задействованы в этой версии tensorflow. Чтобы их включить, надо пересобрать tensorflow с текстов. Процедура сборки долгая, компиляция в моём случае заняла порядка шести часов.

Пробуем пересобранную версию:

$ python mnist-training.py
Using TensorFlow backend.
Epoch 1/5
60000/60000 [==============================] - 3s 54us/step - loss: 0.2577 - acc: 0.9252
Epoch 2/5
60000/60000 [==============================] - 3s 52us/step - loss: 0.1044 - acc: 0.9685
Epoch 3/5
60000/60000 [==============================] - 3s 53us/step - loss: 0.0690 - acc: 0.9796
Epoch 4/5
60000/60000 [==============================] - 3s 52us/step - loss: 0.0507 - acc: 0.9850
Epoch 5/5
60000/60000 [==============================] - 3s 53us/step - loss: 0.0385 - acc: 0.9886
10000/10000 [==============================] - 0s 27us/step
Test set accuracy: 0.9767


Скорость улучшилась до 53 микросекунд на итерацию, или на 18%. Мелочь, а приятно.

Date: 2018-06-25 01:00 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Ачойито оно говорит, что результат стал быстрее, но хужее?

Date: 2018-06-25 17:42 (UTC)
pappadeux: (Default)
From: [personal profile] pappadeux
> 512-битные векторные регистры

256-битные векторные регистры

512 - это AVX-512