Большая часть документации, которая поставляется с инструментарием CUDA и загрузками SDK, в основном относится к CUDA, а не к CuBLAS. Начните с файла CUBLAS_Library_2.3.pdf
, если вы просто собираетесь использовать CuBLAS - вам не нужно писать собственные ядра CUDA. Если вы уже используете CPU BLAS, CuBLAS не должно быть трудно подобрать. (А если нет, то попробуйте оптимизировать процессор до CuBLAS, так как его будет легче программировать).
Если вы кодируете в .NET, то самый простой способ использовать CuBLAS - это, вероятно, вызовы платформенного вызова в cublas.dll. Не забудьте указать, какие массивы находятся в памяти хоста (ЦП), а какие - в памяти устройства (ГП).
Имейте в виду, что CUDA и CuBLAS не являются волшебными пулями. Производительность зависит от многих факторов (особенно передачи по шине PCIe), и простое переключение вызовов CUBLAS на вызовы CPU-BLAS может не дать вам ускорений. Возможно, вам придется внести более существенные изменения в свой собственный код, чтобы повысить производительность. Эти другие упомянутые вами руководства очень полезны для понимания архитектуры CUDA и ее узких мест.
РЕДАКТИРОВАТЬ: я не был ясно о границе между кодом пользователя и кодом ядра. CUBLAS - это библиотека предварительно собранных, оптимизированных ядер CUDA. Если вам нужна только функциональность BLAS, вам не нужно писать собственные ядра. Вместо этого просто вызовите функции CUBLAS. При настройке производительности вам не нужно настраивать ядра CUBLAS, но вам может потребоваться изменить способ и способ их вызова, а также способ использования памяти, чтобы минимизировать количество передач по шине PCI Express.