Постоянный вывод для больших размеров умножения матриц - PullRequest
0 голосов
/ 27 мая 2018

Я использую Matrix Multiplication Code для графических процессоров, тип данных матрицы - float, а размеры очень большие.Таким образом, для больших размеров матриц я получаю постоянное значение 2,147,483,648 , что составляет 2 ^ 31.Я понимаю, что это максимальный диапазон с плавающей запятой, но есть ли способ, с помощью которого я могу увеличить диапазон своих выходных данных, чтобы получить правильный ответ Matrix Multiplication без изменения типа данных?

1 Ответ

0 голосов
/ 29 мая 2018

Итак, я сделал основную ошибку, которая ограничивала значение моих выходных матриц до 2 147 483 648.

for(int i = 0; i < k; i++) 
    {
        sum += A_gpu[row * k + i] * B_gpu[i * m + col];
    }
    C_gpu[row * m + col] = sum;

Это часть моего кода, и проблема заключалась в том, чтопеременная сумма имеет целочисленный тип данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...