Это зависит от двух факторов:
1) Ускорение работы множества ядер, выполняющих операции с плавающей запятой
Это зависит от присущего распараллеливания выполняемых вами операций, числаядер на вашем графическом процессоре и различия в тактовых частотах между вашим процессором и графическим процессором.
2) Затраты на передачу данных назад и вперед между основной памятью и памятью графического процессора.
Этов основном зависит от «пропускной способности памяти» вашего конкретного графического процессора и значительно уменьшается из-за архитектуры Sandy Bridge, в которой процессор и графический процессор находятся на одном кристалле.В более старых архитектурах некоторые операции, такие как матричное умножение, когда внутренние размеры невелики, не улучшаются.Это связано с тем, что для передачи внутренних векторов назад и вперед по системной шине требуется больше времени, чем для расстановки векторов на центральном процессоре.
К сожалению, эти два фактора трудно оценить, и нет способа«знать», не пытаясь это.Если вы в настоящее время используете BLAS для своих операций SIMD, заменить CUBLAS на тот же API-интерфейс достаточно просто, за исключением того, что он передает операции в графический процессор для выполнения.