Я пишу симуляцию с MATLAB, где я использовал ускорение CUDA.
Предположим, у нас есть вектор x
и y
, матрица A
и скалярные переменные dt
, dx
, a
, b
, c
.
Я обнаружил, что, помещая x
, y
, A
в gpuArray()
до запуска итерации и встроенных функций,итерация может быть значительно ускорена.
Однако, когда я попытался поместить переменные типа dt
, dx
, a
, b
, c
в gpuArray()
, программазначительно замедлиться более чем на 30%.(Время увеличилось с 7 до 11 секунд).
Почему не стоит помещать все переменные в gpuArray()
?
(Краткий комментарий, эти скаляры были умножены вместе с x
, y
, A
и никогда не использовались во время одной итерации.)