ну тут все понятно с amd и nvidia, но чтото не черта не нашел поддерживаются ли Intel видео карты, хоть както. было бы хорошо распаралелись меж cpu и хоть каким но и gpu
Немного изменил код, вышло порядка 0.6 сек с использованием 4 потоков. Все вычисления. Но по мне все равно много), всетаки matlab это за 0.05 делает. Хитро они както код оптимизируют. Есть умные книги по оптимизации кода\вычислений?
Агнер Фог http://www.agner.org/optimize/ Используй MMX, SSE, SSE2 они хорошо для матриц подходят и вроде за один такт могут 2-4 регистра обрабатывать.
Если ты соревнуешся с Матлабом, то Смотря какие матрицы..., классический метод Гаусса (прямой и обратный ход Гаусса) реально мало где используется, так как очень медленный. Прямой ход обычно заменяют методом элементарных преобразований. А если у тебя матрица диагональная (или в других источниках-ленточная) или есть возможность привести её к диагональной форме, то существует метод прогонки, кот. вообще мгновенно всё это решает. Ну и наверно дохрена других методов решений. Удачи.
ntkernelspawn это ты улыбаеш) Pavia Толковая глава) Удалось немного выиграть благодаря: - блочное умножение по 32 строки матрицы за проход. Это улучшает эффективность кеша - умножению в xmm регистрах инструкцией pmaddwd. Причём умножаю 4 строки за раз, и результат выходит в одном xmm регистре и сохраняю на выход за раз.