Проект VeriGPU объявил о разработке открытого GPU

В рамках проекта Представлен VeriGPU Несколько дней назад начал работу по разработке открытого графического процессора, который призван разрабатываться под язык моделирования и описания электронных систем Verilog.

Тем, кто не знаком с VeriGPU, следует знать, что он позиционируется как специализированный процессор (ASIC), оптимизированный для ускорения вычислений, связанных с системами машинного обучения.

способ начать, проект разрабатывается с использованием симулятора Verilog, но после того, как он будет готов, его можно будет использовать для производства настоящих чипсов.

Планы включают поддержку среды глубокого обучения PyTorch. и возможность разработки приложений для VeriGPU с использованием API HIP (Heterogeneous Computing Interface). В будущем не исключено включение поддержки других API, таких как SYCL и NVIDIA CUDA.

Важно отметить, что разработка этого GPU направлена ​​непосредственно на обучение машинному обучению. Таким образом, в идеале он должен поддерживать современные платформы машинного обучения, такие как PyTorch и Tensorflow, а это означает, что он почти наверняка должен поддерживать NVIDIA CUDA или AMD HIP.

Хотя упоминается и то, что Я знаю, что могу реализовать интерфейс OpenCL или SYCL, хотя поддержка основных фреймворков в настоящее время ограничена. В DeepCL есть специальная среда глубокого обучения OpenCL, но она имеет относительно ограниченный набор слоев нейронной сети и возможных сетевых топологий по сравнению с PyTorch и Tensorflow.

В настоящее время мы не собираемся реализовывать выполнение вне очереди, т. е. запуск одной инструкции до того, как запустится предыдущая, потому что это сложно в сценарии многопоточности с одной инструкцией (SIMT), и потому что это заставляет ядра использовать больше площади кристалла. , и, следовательно, их меньше (или они дороже).

С другой стороны, мы будем реализовывать параллельное выполнение инструкций, когда мы запускаем инструкцию, в то время как предыдущая инструкция все еще выполняется. Это стандартный и довольно легкий, он не занимает слишком много места на кристалле.

Никакого кэширования в настоящее время не реализовано (ни уровня 1, ни уровня 2, ни уровня 3, ни даже кэширования инструкций :P). Поскольку я намереваюсь создать GPU с другим механизмом кэширования, чем у CPU, я подумаю об этом, как только он станет больше похож на GPU.

Графический процессор развивается на основе набора инструкций RISC-V., но получившаяся внутренняя архитектура набора инструкций GPU плохо совместима с RISC-V ISA, так как в ситуациях, когда компоновка GPU не соответствует рендерингу RISC-V, помимо не постановки задачи поддержания совместимости с RISC-V .

С момента разработки фокусируется на возможностях, необходимых для систем машинного обучения, поэтому для уменьшения размера и сложности массива микросхем используется только формат с плавающей запятой BF16, и используются только те операции с плавающей запятой, которые востребованы для машинного обучения, такие как exp, log, tanh и sqrt. имеется в наличии.

Среди уже доступных компонентов, например, драйвер GPU, APU (Accelerated Processing Unit) для целочисленных операций («+»,»-«,»/»,»*»), модуль для операций с плавающей запятой («+», »*») и ответвления, а также поддержка компилятора HIP.

Для создания приложений предоставляется ассемблер и поддержка компиляции кода C++ на основе LLVM. Из ожидаемых возможностей выделяются параллельное выполнение инструкций, кэширование данных и память инструкций, операции SIMT (Single Instruction Multiple Thread).

Наконец, если вам интересно узнать об этом больше о разработке этого графического процессора с открытым исходным кодом, вы должны знать, что разработки проекта распространяются по лицензии MIT, и вы можете ознакомиться с кодом, а также с ходом проекта от по следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.