Comments 8
Большой текст, HPC, оптимизация, аккуратный код, отличные иллюстрации, аккуратный в тексте -- ммм, обожаю запах старого Хабра)
Текст-то очень хороший и грамотно написанный, но как раз на днях выяснилось, что кастомное векторное расширение от Alibaba содержит критические баги, позволяющие обходить любую программную защиту памяти и получать прямой доступ к данным в памяти: https://ghostwriteattack.com/ и тут https://www.theregister.com/2024/08/07/riscv_business_thead_c910_vulnerable/. Из-за отсутствия микрокода на RISC-V лечится только полным отключением этого самого расширения. Приехали...
Очень интересно, спасибо. Но хотелось бы видеть ассемблерный код для интринсиков с пояснением что и в какие регистры помещается. И почему матричных регистров всего 8 ? Матричные регистры пересекаются с векторными ?
Спасибо за комментарий!
Да, думаю приводить asm код будет хорошей практикой, учту на будущее.
А на счет матричных регистров, в статье про стандартные матричные расширения RISC-V есть ответы на эти вопросы. 8 матричных регистров прописано в спецификации расширения. Оно независимое и с векторными регистрами не пересекается.
Сначала кратко рассмотрим наивную скалярную реализацию
Есть подозрения, что реализация всё же нативная) А так статья отличная!
Плюсану
Математика матричных расширений: как происходит умножение матриц на примере T-Head Matrix Extension