Nano Hash - криптовалюты, майнинг, программирование

Как установить переменные среды Vulkan SDK?

Руководство по началу работы с Vulkan SDK содержит инструкции по настройка среды выполнения, позволяющая приложениям видеть локальную установку Vulkan SDK:

Настройте эти переменные в своей среде после того, как вы установили переменную VULKAN_SDK:

$ export PATH=$PATH:$VULKAN_SDK/bin
$ export LD_LIBRARY_PATH=$VULKAN_SDK/lib
$ export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d

Что мне делать с этими командами? В настоящее время я просто помещаю их в конец моего файла ~/.bashrc:

$ tail -4 ~/.bashrc
VULKAN_SDK=~/vulkan/VulkanSDK/1.0.13.0/x86_64
export PATH=$PATH:$VULKAN_SDK/bin
export LD_LIBRARY_PATH=$VULKAN_SDK/lib
export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d

До сих пор это работало, но разве это не устанавливает только переменные в Bash? Что делать, если я использую другую оболочку или IDE?

Это то, как я должен устанавливать переменные среды Vulkan SDK, или есть лучший способ?


Ответы:


1

Версии SDK до 1.0.13.0 использовались для копирования файлов json, определяющих слои, в /etc/vulkan/explicit_layer.d. Это избавило от необходимости устанавливать VK_LAYER_PATH.

Начиная с версии 1.0.13.0 SDK больше не помещает файлы в системные каталоги. Поэтому вместо того, чтобы указывать файлы json в $VULKAN_SDK/etc/explicit_layer.d с помощью VK_LAYER_PATH, вы можете скопировать содержимое $VULKAN_SDK/etc/explicit_layer.d в ~/.local/share/vulkan/explicit_layer.d.

Загрузчик Vulkan ищет слои в ~/.local/share/vulkan/explicit_layer.d в дополнение к /etc/vulkan/explicit_layer.d и /usr/share/vulkan/explicit_layer.d.

16.06.2016
  • Так что это избавляет от необходимости устанавливать VK_LAYER_PATH в ~/.bashrc, правильно? Есть ли способ, которым я могу устранить необходимость установки LD_LIBRARY_PATH? (Я попытался удалить часть export PATH=$PATH:$VULKAN_SDK/bin, и, похоже, ничего не сломалось, так что, думаю, в этом нет необходимости?) 16.06.2016
  • Да, это устранило бы необходимость устанавливать VK_LAYER_PATH. Недостатком является то, что если вы устанавливаете новый SDK, вам нужно будет не забыть повторно скопировать файлы json в свой .local. Возможно, символическая ссылка в .local позволит избежать этого. И да, вам все равно нужно установить LD_LIBRARY_PATH, если только вы не скопируете двоичные файлы куда-нибудь в путь загрузчика по умолчанию. Одна из альтернатив установке двоичных файлов — отредактировать каждый файл json, указав полное имя пути в члене library_path. 17.06.2016
  • И вам не нужно изменять свой PATH, если только вы не хотите вызывать какие-либо исполняемые файлы в каталоге $VULKAN_SDK/bin, такие как vulkaninfo. 17.06.2016
  • Хорошо. Спасибо! Приятно получить ответ от кого-то из LunarG. :) 17.06.2016

  • 2

    Лучшее место для установки переменных среды во многом зависит от вашего варианта использования и от того, какой дистрибутив вы используете. Однако, если вы запускаете IDE с рабочего стола Ubuntu и хотите, чтобы эти переменные были доступны глобально, я бы рекомендовал поместить их в ваш файл ~/.profile, а не ~/.bashrc.

    ~/.bashrc загружается всякий раз, когда вы запускаете терминал bash, поэтому он будет работать только для инструментов, запускаемых из терминала, но не для инструментов, запускаемых из средства запуска на рабочем столе.

    ~/.profile, с другой стороны, загружается при входе в систему, поэтому его переменные доступны глобально, с терминала И с рабочего стола. Однако для ~/.profile вы должны выйти и снова войти, чтобы изменения вступили в силу.

    В качестве альтернативы, как сказал храповик, большинство (но не все) IDE предоставляют свои собственные средства для установки переменных среды. Это верно для Code::Blocks и Qt Creator, но НЕ для Android Studio. Так что лично я предпочитаю размещать их в ~/.profile.

    03.09.2016

    3

    В IDE будет способ установить переменные среды для работающей программы. Эти параметры часто встречаются вместе с настройкой аргументов командной строки.

    В самой программе вы можете использовать setenv(3) в linux или _putenv_s в окнах перед вулканом загрузчик загружается.

    10.06.2016
  • Значит, нет способа установить переменные глобально? Или это просто не рекомендуется? 10.06.2016
  • ну, в пакетном файле, который запускается при входе в систему или при запуске, вы можете установить env var, но это не то, что рекомендуется. Более портативное решение — скопировать манифест слоя файлы (jsons) в ~/.local/share/vulkan/explicit_layer.d 10.06.2016
  • Не могли бы вы добавить к своему ответу более подробное объяснение того, как настроить необходимые файлы манифеста слоя? 10.06.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..