Как стать автором
Обновить

Векторизация кода преобразования координат в пространстве на Intel® Xeon Phi™ с помощью низкоуровневых инструкций

Время на прочтение 10 мин
Количество просмотров 8.9K
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 5

Комментарии 5

А если сравнивать с современными графическими ускорителями, поддерживающими OpenCL или CUDA — то что быстрее будет — GPU или этот ускоритель?
Во-первых, этот ускоритель, используемый на многих кластерах, современным назвать уже нельзя, на его смену пришел KNL, у которого производительность выше, но доступ к которому пока получить не удалось, так что современным GPU, он, на этой задаче будет уступать, так же, как и по пиковой производительности. Во-вторых, в статье не показано, как достичь пиковой производительности, а приведен пример того, как можно повысить скорость кода, генерируемого компилятором за счет векторизации, причем на одном ядре. Для эффективного задействования сопроцессора, код еще требуется распараллелить. Этот пример может дать преимущество в случае, если целиком выполнять все вычисления, помимо матричных операций, на сопроцессоре в native-режиме, например, достаточно сложный параллельный физический код, который целиком на GPU не ложится.

В данной статье тестируется 300к матриц размером 4х4, я думаю, что на ГПУ это будет тоже быстро. Могу попробовать оптимизировать такое легкое ядро ради интереса (если это вам интересно конечно).

Если интересно, попробуйте. В данном случае на топовом GPU, очевидно, будет быстрее, если считать все на нем, но данная операция может использоваться, как здесь уже отметили, в итеративном коде с выводом данных на каждой итерации, то есть каждый запуск ядра потребует пересылки большого объема на GPU и обратно, а это уже, скорее всего, будет существенно медленнее.
Не всё ложится на GPU. Если алгоритм итеративный, AN+1=F(AN) то при всём желании нельзя задействовать все юниты GPU. При небольшом параллелизме, хотя достаточном для матриц (4-16 умножений-сложений за такт), CPU будет быстрее.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий