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