Когда я попытался проверить, что графический процессор выполняет матричные операции над процессором, я получил неожиданные результаты. ЦП работает лучше, чем графический процессор, согласно моему опыту, это меня сбивает.
Я использовал процессор и графический процессор для умножения матриц соответственно. Среда программирования: M XNet и cuda-10.1.
с графическим процессором:
import mxnet as mx
from mxnet import nd
x = nd.random.normal(shape=(100000,100000),ctx=mx.gpu())
y = nd.random.normal(shape=(100000,100000),ctx=mx.gpu())
%timeit nd.dot(x,y)
50,8 мкс ± 1,76 мкс на л oop ( среднее ± стандартное отклонение из 7 прогонов, 10000 циклов в каждом)
с процессором:
x1 = nd.random.normal(shape=(100000,100000),ctx=mx.cpu())
y1 = nd.random.normal(shape=(100000,100000),ctx=mx.cpu())
%timeit nd.dot(x1,y1)
33,4 мкс ± 1,54 мкс на л oop (среднее ± стандартная разработка из 7 прогонов, 10000 циклов в каждом)
Почему процессор быстрее? Моя модель процессора - i5-6300HQ, а модель графического процессора - Nividia GTX 950M.