RocSPARSE SpMV всегда приводит к нулевому результату [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 RocSPARSE SpMV всегда приводит к нулевому результату [закрыто]

Сообщение Anonymous »

Я хочу выгрузить матрицу OpenFOAM в графический процессор и вычислить SPMV с использованием AMD ROCm rocSPARSE, поскольку у меня есть оборудование AMD, но результат всегда равен нулю.
Краткое описание проблемы с нулевым результатом SpMV:
Ключевая проблема заключается в том, что rocsparse_dcsrmv возвращает успех, но постоянно дает нулевые результаты (Sum: 0, первые 5 значений y: 0 0 0 0 0), хотя:
  • Проверка данных подтверждает существование ненулевых значений:
    • Значения CSR проверены на ЦП с ненулевой суммой (-0,00169449)
    • Проверка данных графического процессора показывает переданные ненулевые значения (Sum: -1.40768e-06)
    • Диагональные и недиагональные коэффициенты действительны и не равны нулю.
  • Несколько попыток SpMV не удались:
    • Общий матричный тест (без анализа): возвращает нули
    • Масштабированный матричный тест (×1e6): все равно возвращается нули
    • Тест симметричной матрицы: также возвращает нули
  • Однако операции графического процессора работают и в других местах:
    • Операции с вектором тяги проходят тесты
    • Вычисления скалярного произведения работают правильно
    • Передача данных графического процессора завершается успешно
Предполагаемая проблема: проблема, по-видимому, специфична для реализации SpMV в rocSPARSE с предоставленным форматом матрицы или расположением памяти, несмотря на допустимые входные данные и успешные вызовы API.
Ключевой вопрос: существует ли известная проблема с rocsparse_dcsrmv при использовании:
  • маленьких значений матрицы (диапазон от 1e-6 до 1e-8)?
  • Особая структура матрицы (симметричная, но сохраненная с полным шаблоном)?
  • Определенное выравнивание данных или шаблоны доступа к памяти?
// STEP 11: Test SpMV operation with different approaches
Pout

Подробнее здесь: https://stackoverflow.com/questions/798 ... ero-result
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»