Сокращение матрицы
может быть несколько проще для реализации, потому что сокращение строки / столбца до вектора может быть выполнено независимо.Вы можете позволить каждому потоку обрабатывать столбец / строку (в зависимости от ориентации основного размера матрицы) и объединять чтение памяти.Я сомневаюсь, что вы можете купить большую производительность по сравнению с этим, не переходя в текстурный / постоянный кеш, где локальность может стать важной