Pull to refresh

Comments 8

Большой текст, HPC, оптимизация, аккуратный код, отличные иллюстрации, аккуратный \TeXв тексте -- ммм, обожаю запах старого Хабра)

Текст-то очень хороший и грамотно написанный, но как раз на днях выяснилось, что кастомное векторное расширение от Alibaba содержит критические баги, позволяющие обходить любую программную защиту памяти и получать прямой доступ к данным в памяти: https://ghostwriteattack.com/ и тут https://www.theregister.com/2024/08/07/riscv_business_thead_c910_vulnerable/. Из-за отсутствия микрокода на RISC-V лечится только полным отключением этого самого расширения. Приехали...

В тексте речь идет не о векторном расширении, а о матричном. С910, о котором вы пишете, матричное расширение не содержит.

Очень интересно, спасибо. Но хотелось бы видеть ассемблерный код для интринсиков с пояснением что и в какие регистры помещается. И почему матричных регистров всего 8 ? Матричные регистры пересекаются с векторными ?

Спасибо за комментарий!
Да, думаю приводить asm код будет хорошей практикой, учту на будущее.
А на счет матричных регистров, в статье про стандартные матричные расширения RISC-V есть ответы на эти вопросы. 8 матричных регистров прописано в спецификации расширения. Оно независимое и с векторными регистрами не пересекается.

Сначала кратко рассмотрим наивную скалярную реализацию 

Есть подозрения, что реализация всё же нативная) А так статья отличная!

Нативный, значит, родной для определённой вычислительной среды.

Наивный, значит, наиболее простой, но и, как это часто бывает "по жизни", расточительный по времени (да и по памяти).

Sign up to leave a comment.