Я использую jCUSPARSE (оболочку библиотеки cuSparse) для умножения матрицы на вектор, и у меня проблема с функцией
cusparseDcsrmv(handle, cusparseOperation.CUSPARSE_OPERATION_NON_TRANSPOSE, matrixSize, matrixSize, alpha, descra, d_csrValA, d_rowPtrA, d_colIndA, x, beta, y);
Если я использую для инициализации дескриптора
cusparseSetMatType(descra, cusparseMatrixType.CUSPARSE_MATRIX_TYPE_GENERAL);
работает в 5-10 раз быстрее, чем я использую
cusparseSetMatType(descra, cusparseMatrixType.CUSPARSE_MATRIX_TYPE_SYMMETRIC);
Я проверял на маленькой симметричной матрице 5х5 и ОБЩИЙ работает в 4 раза быстрее, чем симметричный
Я проверял на симметричной матрице 10000x10000 и ОБЩАЯ работает в 10 раз быстрее, чем симметричная.