Re[23]: .Net на эльбрусах
От: 4058  
Дата: 19.08.22 20:03
Оценка: 4 (1) +1
Здравствуйте, vdimas, Вы писали:

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


Cкорее демонстрация, как можно изначально т.с. "неоптимальный" код с минимальными изменениями оптимизировать. То, что EML (в данном случае) с этим прекрасно справляется, сомнений не вызывает. Вещь безусловно полезная и интересная.

4>>Это такая-же нелепость как сравнивать перемножение матриц с использованием SIMD и без него.


V>С чего ты решил, что SIMD не используется?


В статье не приведены ключи GCC под Intel, упоминается только:

Самое простое перемножение без eml. Компилируем пример с оптимизацией -O3


-O3 включает автовекторизацию в GCC, но для дефолтового профиля x86-64 заиспользует что-то по мелочи из SSE2 (дальше надо ключи указывать), и для данного примера все-равно ничего путного само по себе не получится. Следовательно сравнивать eml_Algebra_GEMM_64F с этой мурой не стоит, тем более удивляться разнице в 20+ раз.

V>MKL даёт прирост от наихудшей наивной реализации в ~10 раз.


Это имеет смысл обсуждать при наличии соответствующего теста.

V>В общем, у этой архитектуры есть характеристика — флопсы на такт.

V>Необходимо в реализации софта поднимать эту характеристику на максимум (т.е. загружать максимальное кол-во исполнительных блоков в каждом такте), чтобы Эльбрус показывал себя во всей красе.

V>Компилятор надо развивать нон-стоп, ес-но, на него вся надежда.


V>Но что здесь внушает оптимизм — при улучшении компилятора можно перепрогонять им софт и получать профит, не меняя ни исходники, ни железо.


Я не просто чуть ранее упомянул Cell, ибо там тоже делалась ставка на компилятор и SDK, которые постоянно будут улучшать, тем самым постепенно раскрывая потенциал SPE (все уши тогда этим прожужали), в результате следующее поколение консолей PS4/X1 тупо получили AMD64 (причем с в 2 раза меньшей тактовой частотой).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.