Дата публикации:Sun, 12 Oct 2025 21:49:34 +0300
Кэрол Хербст (Karol Herbst) из компании Red Hat, принимающий участие в разработке Mesa, драйвера Nouveau и открытого стека OpenCL, предложил для включения в состав Mesa драйвер cluda, реализующий API Gallium поверх API CUDA, предоставляемого проприетарным драйвером NVIDIA. Gallium используется в Mesa для абстрагирования разработки драйверов и реализует типовые для драйверов программные интерфейсы, не специфичные для отдельных аппаратных устройств. В контексте cluda реализованы интерфейсы, связанные с вычислениями, которых достаточно для воплощения спецификации OpenCL поверх CUDA.
Предполагается, что cluda поможет решить проблемы с использованием OpenCL поверх проприетарного драйвера NVIDIA. Использование дополнительной обвязки даёт возможность реализовать недостающие расширения OpenCL, отсутствующие в стеке NVIDIA на базе проприетарного драйвера. В cluda используются только возможности библиотеки libcuda.so, входящей в состав GPU-драйверов NVIDIA и не привязанной к CUDA runtime. В текущем виде реализация OpenCL на базе cluda поддерживает операции с памятью и позволяет запускать вычислительные ядра.
Реализация OpenCL на базе cluda и rusticl поддерживает следующие расширения OpenCL, которые отсутствуют в реализации NVIDIA:
- cl_khr_extended_bit_ops
- cl_khr_integer_dot_product
- cl_khr_fp16
- cl_khr_suggested_local_work_size
- cl_khr_subgroup_extended_types
- cl_khr_subgroup_ballot
- cl_khr_subgroup_clustered_reduce
- cl_khr_subgroup_non_uniform_arithmetic
- cl_khr_subgroup_non_uniform_vote
- cl_khr_subgroup_rotate
- cl_khr_subgroup_shuffle
- cl_khr_subgroup_shuffle_relative
- cl_khr_il_program (Yes, that means SPIR-V support)
- cl_khr_spirv_linkonce_odr
- cl_khr_spirv_no_integer_wrap_decoration
- cl_khr_spirv_queries
- cl_khr_expect_assume
- cl_ext_immutable_memory_objects
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64041