Университет Иллинойса и связанные с ним разработчики выпустили HPVM 0.5. Это, как следует из описания, компилятор для гетерогенных систем с параллельным вычислением, рассчитанный для работы, в том числе с графическими процессорами NVIDIA.
Компилятор базируется на LLVM и добавляет к нему несколько важных компонентов. Все исходники доступны на Gitlab университета.
Собственно говоря, HPVM (Heterogeneous Parallel Virtual Machine) — это новое, нейтральное к языку и аппаратному обеспечению промежуточное представление (IR) с собственным набором инструкций (ISA) и планировщиком. Как отмечается, предыдущие системы фокусировались только на одной из этих возможностей.
Таким образом, HPVM стремится обеспечить эффективную генерацию и оптимизацию кода для гетерогенных систем одновременно с возможностью переносимости кода на другие системы. Самое интересное, что система разрабатывалась с 2018 года, но лишь на этой неделе была открыта в виде готового кода.
Конечная цель проекта — дать возможность запуска кода без сложных модификаций на GPU, CPU, FPGA и иных ускорителях. Предварительные тесты показали сравнимую с вручную оптимизированным кодом на OpenCL для ускорителей NVIDIA и многоядерных CPU с AVX производительность — пока что поддерживаются только эти платформы.