RISC-V базированная открытая GPU архитектура (RV64X)
Коллектив инженеров продвигает новый набор графических инструкций, оптимизированных для 3D рендеринга и медиа обработки. Эти инструкции расширяют базовый векторный ISA RISC-V с графически-специфическими типами данных и слоистыми расширениями, покрывающими векторы, трансцендентную математику, манипуляцию пикселей, текстуры и Z/frame-buffer операции. Предложение, названное RV64X, использует 64-битные инструкции для доставки надежного, унифицированного CPU-GPU ISA.
Почему сейчас?
Коммерческие GPU превосходят в мейнстрим нагрузках но часто недотягивают для нишевых задач таких как двухфазный 3D frustum clipping, адаптивное HPC (например, произвольной-битглубины FFT) и аппаратный SLAM. Комьюнити-драйвенный открытый стандарт может сократить 10-20 лет цикл разработки, способствовать кросс-верификации и предоставлять гибкие, масштабируемые решения для более широкого диапазона применений.
Видение команды — компактная, площадь-эффективная ядро, предлагающая кастомную программируемость и расширяемость. Она будет доступна как свободный, открытый IP для целей FPGA и ASIC, нацеливаясь на низкоэнергопотребляющие микроконтроллеры изначально. Дизайн будет Vulkan-совместимым, с будущей поддержкой OpenGL, DirectX и других API.
Финальное железо будет RISC-V ядром с интегрированным GPU функциональным блоком. Для программиста оно представляет единый 64-битный набор инструкций; скалярные опкоды префиксируются векторным контекстом, позволяя компилятору генерировать SIMD инструкции за кулисами. Архитектура поддерживает variable issue, predicated SIMD, векторный фронт-энд, точные исключения, branch shadowing и больше. Никакой отдельный RPC/IPC слой не требуется для CPU-GPU коммуникации. Он будет поддерживать 16-бит fixed point (идеально для FPGA) и 32-бит floating point (ASIC или FPGA).
Дизайн использует Vblock формат из усилий Libre GPU:
- Bit-подобная VLIW структура, тегающая скалярные инструкции с регистровым контекстом
- Sub-блоки предоставляют векторную длину, swizzling, переопределения ширины и предikation
- Никаких выделенных векторных опкодов; векторный режим активируется когда скалярный опкод ссылается на вектор-тегированный регистр
- Железный for-loop исполнение множественных смежных скалярных операций, реализованное как SIMD, multi-issue или single-execution в зависимости от выбора вендора
Поддерживаемые типы данных включают 8-, 16-, 24- и 32-бит fixed и floating point скаляры, а также трансцендентные функции (sincos, atan, pow, exp, log, rcp, rsq, sqrt, и т.д.). RV32-V векторы поддерживают 2- до 4-элементные операции с 8-, 16- или 32-битными элементами, и специализированные инструкции для 3D графических конвейеров: точки (XYZW), пиксели (RGBA), тексели (UVW) и материалные коэффициенты.
- XYZW точки (64- и 128-бит fixed и float)
- RGBA пиксели (8-, 16-, 24- и 32-бит)
- UVW тексели (8-, 16-бит на компонент)
- Материальные параметры (Ia, ka, Id, kd, Is, ks…)
Нативная поддержка 2×2, 3×3 и 4×4 матриц включена, хранится как 4×4 для простоты.
Выгоды сфьюженного CPU-GPU ISA включают микрокод-драйвенный графический конвейер, кастомную шейдерную поддержку, ray-tracing расширения и 8-бит integer векторную поддержку для ИИ и машинного обучения нагрузок.
Кастомные растеризаторы — такие как spline-базированные поверхности, subdivision patches и бесхозные tessellators — могут быть реализованы. Архитектура полностью конфигурируемая, позволяя пользователю-определенные стадии конвейера, geometry/pixel/frame-buffer операции и инстансинг.

RV64X блок-схема
Референс реализация будет включать:
- 32 КБ Instruction/Data SRAM Кэш
- 8 КБ Microcode SRAM
- Dual-Function Instruction Decoder
- Hardwired RV32V и RV64X поддержка
- Микрокодированный декодер для кастомных расширений
- Quad Vector ALU (32-бит fixed/float)
- 136-бит Register File (1K элементов)
- Special Function Unit
- Texture Unit
- Конфигурируемый локальный Frame Buffer
Масштабируемость встроена в архитектуру, как показано ниже.

Масштабируемый дизайн RV64X
Ключевые инновации включают унифицированный CPU-GPU ISA, конфигурируемые регистры для кастомных типов данных и пользовательское SRAM-базированное микрокод для приложения-специфических расширений — кастомные растеризатор стадии, ray tracing, машинное обучение и компьютерное зрение.
То же ядро может служить автономным графическим микроконтроллером или масштабируемым шейдерным блоком, поддерживая как FPGA-нативные, так и ASIC реализации.
Почему открытая графика?
Текущие GPU преимущественно таргетят high-end рынки — гейминг, HFT, видение, ML — оставляя пробел для мейнстрим устройств вроде киосков, билбордов, казино гейминга, игрушек, робототехники, носимых, промышленных HMI, инфотейнмента и авто кластеров. Открытый, масштабируемый графический ядро для RISC-V снизил бы мультиязыковые бремени и поощрил инновации по этим доменам.
Следующие шаги
Спецификация ранняя и эволюционирует. Команда планирует запустить форум обсуждения, построить симулятор набор инструкций и разработать FPGA прототип используя открытый IP. Бенчмарки и демо в прогрессе. Заинтересованные разработчики должны связаться с Атифом Зафаром для присоединения к усилию.
В параллели, инициатива Libre-RISC-V 3D GPU целится на создание гибридного CPU/VPU/GPU SoC — не выделенного GPU — предоставляя полный, Libre-лицензированный процессор для разности встроенных применений.
Контекст индустрии
GPU экосистема теперь включает более дюжины основных игроков: Apple, Qualcomm, AMD, Nvidia, Arm, Intel, Think-Silicon, DMP, Jingjia Micro, VeriSilicon, Imagination Technologies и الناشивающее RISC-V Graphics комьюнити.
Потенциальные случаи использования для свободного, гибкого GPU выходят за пределы графики, охватывая криптовалютный майнинг и другие compute-heavy нагрузки.
Принятие, вероятно, займет минимум два года. Xilinx, которая сейчас интегрирует Mali от Arm в свою линию Zynq, и несколько китайских вендоров — правдоподобные ранние приемщики.
► Эта статья была первоначально опубликована на нашем партнерском сайте EE Times.

Jon Peddie, пионер графической индустрии и президент Jon Peddie Research.
Для большего embedded контента, подпишитесь на еженедельную email рассылку Embedded.
Встроенный
- Руководство новичка по терминологии Open Source
- Как открытое ПО двигает инновации в интернете вещей
- RISC-V Summit 2020: ключевые сессии и главные моменты
- Аппаратная безопасность ведет IIoT: тампер‑устойчивость, быстрый вход на рынок, сильная защита для производств…
- Журнал проекта FirePick Delta: создание открытого микрозавода с OpenPnP
- AT&T и Tech Mahindra запускают Acumos: открытую ИИ-платформу для быстрого развертывания
- Защита открытого ПО в IoT: смягчение программных рисков
- Open Source vs вендор-поддерживаемые инструменты разработки IoT: выбор правильного стека для предприятия
- MassRobotics анонсирует первый глобальный открытый стандарт интероперабельности AMR
- Почему открытый исходный код движет инновациями на периферии — важная электронная книга