Czy jądro CUDA może wywołać funkcję cublas?

Wiem, że to brzmi dziwnie, ale oto mój scenariusz:

Muszę wykonać mnożenie macierzowo-macierzowe (A (n * k) * B (k * n)), ale potrzebuję tylko elementów diagonalnych do oceny dla macierzy wyjściowej. Szukałem biblioteki cublas i nie znalazłem żadnych funkcji poziomu 2 lub 3, które mogłyby to zrobić. Postanowiłem więc rozdzielić każdy wiersz A i każdą kolumnę B na wątki CUDA. Dla każdego wątku (idx) muszę obliczyć iloczyn punktowy „A [idx,:] * B [:, idx]” i zapisać go jako odpowiedni wynik przekątny. Teraz, ponieważ ten produkt kropkowany także zajmuje trochę czasu i zastanawiam się, czy mógłbym w jakiś sposób nazwać funkcję cublas (powiedzmy cublasSdot), aby to osiągnąć.

Jeśli przegapiłem jakąś funkcję cublas, która może osiągnąć mój cel bezpośrednio (obliczyć tylko elementy diagonalne dla mnożenia macierzowo-macierzowego), to pytanie można odrzucić.

questionAnswers(2)

yourAnswerToTheQuestion