LINUX.ORG.RU

cluda — OpenCL для NVIDIA через открытый драйвер

 , , ,

cluda — OpenCL для NVIDIA через открытый драйвер

0

4

Кэрол Хербст из компании Red Hat, принимающий участие в разработчике Mesa предложил для включения в состав Mesa драйвер cluda, реализующий API Gallium поверх API CUDA, предоставляемого проприетарным драйвером NVIDIA. Это решение обходит ограничения стека NVIDIA и добавляет поддержку современных расширений.

Предполагается, что 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

При измерении производительности в LuxMark 3.1 реализация OpenCL на базе Mesa, cluda и rusticl показала 57702 баллов, а реализация на базе стека NVIDIA - 64009 баллов. Падение производительности объясняется накладными расходами на преобразование промежуточного представления Mesa NIR в CUDA PTX (Parallel Thread Execution). Из возможных оптимизаций, которые могли бы уменьшить отставание в производительности, отмечается более активное использование векторизации и задействование JIT-компиляции.

>>> Подробности на opennet



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Выглядит как хорошая новость.

nuxster ★★★★
()

реализующий API Gallium поверх API CUDA, предоставляемого проприетарным драйвером NVIDIA

Так через проприетарный драйвер, или через открытый? Слово «открытый» вижу только в заголовке.

cdslow ★★
()
Ответ на: комментарий от PunkPerson

cluda – открытый драйвер, который построен на основе API от проприетарного драйвера.

Из текста новости я так и понял. Но заголовок вводит в заблуждение - читаешь «OpenCL для NVIDIA через открытый драйвер» и думаешь, что в открытом драйвере заработал OpenCL.

Лучше было бы использовать что-то вроде:

cluda - открытая реализация OpenCL, расширяющая возможности проприетарного драйвера NVIDIA

cdslow ★★
()

CUDA поверх Nouveau была бы куда полезнее.

dvrpd
()
Последнее исправление: dvrpd (всего исправлений: 1)
Ответ на: комментарий от cdslow

cluda - открытая реализация OpenCL, расширяющая возможности проприетарного драйвера NVIDIA

Соглашусь, так лучше. Но уже не исправить.

PunkPerson
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.