Представлена открытая лёгковесная библиотека gpu.cpp для проведения упрощённых низкоуровневых вычислений на GPU с помощью C++. Исходный код проекта опубликован на GitHub под лицензией Apache License 2.0.
Технические цели проекта: лёгкий вес, быстрая итерация и простой шаблон.
Разработчики gpu.cpp пояснили, что в проекте используется спецификация WebGPU. Решение позволяет добавлять код для выполнения на GPU в проекты C++, включая графические модули Nvidia, Intel, AMD. Один и тот же код C++ может работать на самых разных ноутбуках, рабочих станциях, мобильных устройствах или практически на любом оборудовании с поддержкой Vulkan, Metal или DirectX.
«С помощью gpu.cpp мы хотим предоставить многофункциональную библиотеку, позволяющую отдельным разработчикам и исследователям включать вычисления на графическом процессоре в программы, используя в качестве инструментария не что иное, как стандартный компилятор C++», — уточнили в команде проекта.
В проекте заявлены минимальные зависимости и накладные расходы на инструментарий, стандартного компилятора clang C++ должно быть достаточно, нет никаких зависимостей от внешних библиотек, кроме собственной реализации WebGPU. Реализация проекта нацелена на использование простой API с минимальным шаблоном.
«Существует небольшое количество библиотечных операций для выполнения широкого спектра низкоуровневых операций с графическим процессором. Мы избегаем абстракций, которые добавляют косвенные уровни, делаем отображение между библиотекой gpu.cpp и необработанным API WebGPU понятным, когда это необходимо», — уточнили в команде проекта.
В рамках текущих экспериментов разработчики проекта планируют, что сборки проектов с помощью библиотеки gpu.cpp на C++ будут выполняться не более секунды или двух даже на ПК средней мощности.
Источник новости: habr.com