Во время моего знакомства с CUDA в Python (numba lib) я реализовал методы предоставления матриц:
- Только что с
numpy.dot()
- Алгоритм Штрассена с
numpy.dot()
- Метод блоков на GPU
- Алгоритм Штрассена на графическом процессоре
Поэтому я протестировал его на двух типах данных:
numpy.random.randint(0, 5, (N, N)) # with int32 elements
numpy.random.random((N, N)) # with float64 elements
Для int32 я получил ожидаемый результат, когда мои алгоритмы GPU работали лучше, чем CPU с numpy:
Однако на типе float64 numpy.dot()
превзошел все мои методы GPU:
Итак, вопрос: Почему numpy.dot()
так быстро работает с массивами float64
, и использует ли numpy GPU?