мне нужно вычислить следующую матрицу математике:
D * A
где D плотно, и А разреженный, в формате CSC.
cuSPARSE позволяет умножать разреженные * плотные, где разреженная матрица находится в формате CSR.
Следуя связанным вопросам, я могу «преобразовать» CSC в CSR просто путем переноса A.
Также я могу вычислить (A^T * D^T)^T, поскольку я могу справиться с передачей результата.
В этом методе я также могу избежать «переноса» A, потому что CSR^T является CSC.
Единственная проблема заключается в том, что cuSPARSE не поддерживает перенос D в этой операции, поэтому я должен предварительно транслировать его или преобразовать в CSR, что является общим количеством отходов, так как это очень плотный.
Есть ли обходной путь?
Спасибо.cuSPARSE плотные времена редкие
2
A
ответ
1
Я нашел обходное решение.
Я изменил доступ к памяти в D во всем моем коде.
Если D является матрицей mxn, и я использовал для доступа к ней D[j * m + i]
, теперь я обращаюсь к ней по адресу D[i * n + j]
, то есть я сделал ее строкой-майором вместо столбцов.
cuSPARSE ожидает матриц в формате столбца-майор, а так как строки-майоры транспонированы - столбцы-майоры, я могу передавать функции D в cuSPARSE в качестве поддельного транспонирования без необходимости делать транспонирование.
Смежные вопросы
- 1. Плотные и редкие конверсии с использованием cuSPARSE
- 2. индексы postgresql - они плотные или редкие?
- 3. редкие версии Pandas DataFrame
- 4. Почему у cusparse нет cusparse <t> cscmm?
- 5. Преобразование внутреннего формата CUSPARSE в csrmv/csrmm
- 6. Плотные функция ранга
- 7. плотные просеять и vlfeat
- 8. Пример CuSparse csrmm
- 9. multi-stream in CUSPARSE
- 10. Проблема работы с CUSPARSE
- 11. Редкие матрицы
- 12. Плотные места с заказом по
- 13. Mysql найти плотные пробелы серии
- 14. Иерархические метки или плотные узлы?
- 15. AWS SimpleDb - менее плотные диски
- 16. Параллельные ядра с библиотекой CUSPARSE
- 17. Редкие векторы, что они?
- 18. Pandas drop редкие записи
- 19. Редкие массивы в Хаскелле?
- 20. RWeka удалить Редкие условия
- 21. Редкие массивы из кортежей
- 22. Редкие столбцы в Oracle
- 23. Редкие элементы в массивах
- 24. Zip редкие последовательности
- 25. Редкие массивы и матрицы
- 26. что такое редкие вокселы?
- 27. GCM registrationId редкие символы
- 28. Времена процессов
- 29. Редкие файлы в WinXP SP3
- 30. Редкие мировые структуры в Эрланге
Возможно, вы уже знаете это, но вы можете транспонировать плотную матрицу в cublas с помощью функции [geam] (http://docs.nvidia.com/cuda/cublas/index.html#topic_9_1). –
Является ли это самостоятельной работой или вы что-то делаете на линиях 'A '* D * A'? –
Операция X-D * A где X и D очень плотные, а A очень редкий – MrDor