Может ли ядро CUDA вызывать функцию cublas?

Я знаю, это звучит странно, но вот мой сценарий:

Мне нужно сделать матрично-матричное умножение (A (n * k) * B (k * n)), но мне нужны только диагональные элементы для оценки выходной матрицы. Я искал библиотеку cublas и не нашел функций уровня 2 или 3, которые могли бы сделать это. Итак, я решил распределить каждую строку A и каждый столбец B в потоки CUDA. Для каждой нити (idx) мне нужно вычислить скалярное произведение «A [idx,:] * B [:, idx]» и сохранить его как соответствующий диагональный выход. Теперь, поскольку этот точечный продукт также требует некоторого времени, и мне интересно, могу ли я как-то вызвать здесь функцию cublas (скажем, cublasSdot) для ее достижения.

Если бы я пропустил какую-то функцию cublas, которая может достичь моей цели напрямую (только вычислить диагональные элементы для умножения матрицы на матрицу), этот вопрос можно было бы отбросить.

Ответы на вопрос(2)

Ваш ответ на вопрос