Различный результат умножения матрицы с плавающей запятой на двух графических процессорах - PullRequest
2 голосов
/ 24 апреля 2019

Я запускаю MPSMatrixMultiplication из Metal Performance Shader на двух отдельных графических процессорах, один из которых является внутренним, а другой - AMD GPU. Матрицы точно такие же.

Но проблема в том, что результат не совсем тот же. Я знаю, что на GPU наблюдается некоторая потеря точности, но почему результаты не совпадают с тем же стандартом IEEE 754-2008?

Я хочу проверить правильность расчета GPU. Как я мог это сделать? Должен ли я допустить разницу в 0,0001, какая максимальная разница между каждым результатом?

1 Ответ

1 голос
/ 25 апреля 2019

Компилятор Metal по умолчанию использует fast-math, что позволяет графическому процессору нарушать IEEE 754 для повышения производительности.Я полагаю, что по этой причине вы получаете разные результаты.

Вы должны иметь возможность отключить fast-math в настройках сборки вашего проекта.

...