Méthode du didacticiel Vulkan SDK pour l'installation d'Ubuntu 18.04 (super détaillée)

Comment installer le SDK Vulkan dans Ubuntu18.04

1. Copiez et installez

  1. Téléchargez le package compressé du SDK Vulkan : LunarXchange (lunarg.com) Faites attention à savoir si les exigences du système d'exploitation sont prises en charge

  2. Décompressez dans le répertoire spécifié

    tar -xf vulkansdk-linux-x86_64-1.3.224.1.tar.gz -C vulkan_1.3.224
    cd vulkan_1.3.224
    
  3. Afficher la structure des répertoires

    (base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1# ls -al
    total 56
    drwxr-xr-x  5 root root  4096 91 14:46 .
    drwxr-xr-x  4 root root  4096 91 11:15 ..
    drwxr-xr-x  2 root root  4096 826  2022 config
    -rw-r--r--  1 root root   944 826  2022 LICENSE.txt
    -rw-r--r--  1 root root   333 826  2022 README.txt
    -rw-r--r--  1 root root   582 826  2022 setup-env.sh
    drwxr-xr-x 20 root root  4096 826  2022 source
    -rwxr-xr-x  1 root root 22865 826  2022 vulkansdk
    drwxr-xr-x  7 root root  4096 826  2022 x86_64
    
    (base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1# cd x86_64/
    (base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1/x86_64# ll
    total 28
    drwxr-xr-x  7 root root 4096 826  2022 ./
    drwxr-xr-x  5 root root 4096 91 14:46 ../
    drwxr-xr-x  2 root root 4096 91 15:12 bin/
    drwxr-xr-x  3 root root 4096 826  2022 etc/
    drwxr-xr-x 17 root root 4096 91 15:12 include/
    drwxr-xr-x  4 root root 4096 91 15:12 lib/
    drwxr-xr-x 16 root root 4096 91 15:12 share/
    
    (base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1# cd ..
    (base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1# ll source/
    total 80
    drwxr-xr-x 20 root root 4096 826  2022 ./
    drwxr-xr-x  5 root root 4096 91 14:46 ../
    drwxr-xr-x 18 root root 4096 91 15:07 DirectXShaderCompiler/
    drwxr-xr-x 11 root root 4096 91 15:06 gfxreconstruct/
    drwxr-xr-x 15 root root 4096 91 11:18 glslang/
    drwxr-xr-x  6 root root 4096 91 11:18 robin-hood-hashing/
    drwxr-xr-x  3 root root 4096 91 11:22 shaderc/
    drwxr-xr-x 23 root root 4096 91 15:05 SPIRV-Cross/
    drwxr-xr-x  8 root root 4096 91 11:17 SPIRV-Headers/
    drwxr-xr-x 10 root root 4096 91 15:12 SPIRV-Reflect/
    drwxr-xr-x 16 root root 4096 91 11:17 SPIRV-Tools/
    drwxr-xr-x  6 root root 4096 91 15:12 volk/
    drwxr-xr-x 12 root root 4096 91 11:19 Vulkan-ExtensionLayer/
    drwxr-xr-x  7 root root 4096 91 11:18 Vulkan-Headers/
    drwxr-xr-x 12 root root 4096 91 11:18 Vulkan-Loader/
    drwxr-xr-x  8 root root 4096 826  2022 VulkanMemoryAllocator/
    drwxr-xr-x 15 root root 4096 91 15:12 Vulkan-Profiles/
    drwxr-xr-x 16 root root 4096 91 11:20 VulkanTools/
    drwxr-xr-x 14 root root 4096 91 11:19 Vulkan-Tools/
    drwxr-xr-x 11 root root 4096 91 11:18 Vulkan-ValidationLayers/
    

    Le contenu de chaque répertoire de fichiers est le suivant :

    Annuaire Description
    x86_64/bin Quelques commandes et outils pour Vulkan
    x86_64/include Fichiers d'en-tête utiles pour vos applications Vulkan, y compris Vulkan, les outils de shader, etc.
    x86_64/lib Bibliothèque de chargeur Vulkan et bibliothèque d'exécution de couches
    x86_64/etc/vulkan/explicit_layer.d Fichier manifeste .json pour la couche de validation Vulkan
    x86_64/share/vulkan Configuration des informations d'identité et du référentiel Vulkan
    config Exemple de fichier de paramètres de couche
    source code source
  4. Définir les variables d'environnement

    Variable d'environnement Fichier/Chemin à inclure
    PATH $VULKAN_SDK/bin
    LD_LIBRARY_PATH $VULKAN_SDK/lib
    VK_LAYER_PATH $VULKAN_SDK/etc/vulkan/explicit_layer.d

setup-env.sh​Les variables d'environnement peuvent être définies via le script fourni avec le répertoire ou via la ligne de commande shell suivante. Bien entendu, ce sont des méthodes de configuration temporaires et la période de validité est limitée à cette session.

export VULKAN_SDK=~/vulkan/1.x.yy.z/x86_64
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d

​ Paramètres permanents : ajoutez ~/.bashrc

source $VULKAN_SDK
  1. Copiez le fichier SDK dans le répertoire système

Si vous souhaitez installer le fichier SDK dans votre répertoire système, vous pouvez vous référer aux étapes suivantes (il est préférable d'utiliser des liens symboliques)

# Vulkan Header Files
sudo cp -r $VULKAN_SDK/include/vulkan/ /usr/local/include/
# Vulkan Loader Files
sudo cp -P $VULKAN_SDK/lib/libvulkan.so* /usr/local/lib/
# Vulkan Layer Files
sudo cp $VULKAN_SDK/lib/libVkLayer_*.so /usr/local/lib/
sudo mkdir -p /usr/local/share/vulkan/explicit_layer.d
sudo cp $VULKAN_SDK/etc/vulkan/explicit_layer.d/VkLayer_*.json /usr/local/share/vulkan/explicit_layer.d

Enfin, utilisez loadconfig pour actualiser le chargeur du système

sudo loadconfig

2. Désinstaller

Supprimer directement tout le répertoire

rm -rf ~/vulkan/1.x.yy.z

3. Compilez et installez

Le DOC sur le site officiel mentionne que même si de nombreux tests ont été effectués sur Ubuntu et diverses autres distributions Linux, il existe encore des distributions Linux supplémentaires qui n'ont pas été confirmées. Les fichiers binaires exécutables ne fonctionnent pas correctement sur votre système. Vous pouvez utiliser le script auxiliaire (vulkansdk) du SDK pour compiler vous-même ces fichiers.

Certains packages doivent être soumis pour l'installation :

sudo apt update
sudo apt upgrade
# 这个ubuntu需要下载的packages 其他OS可以去https://vulkan.lunarg.com/doc/sdk/1.3.224.1/linux/getting_started.html自行查看
sudo apt install libglm-dev cmake libxcb-dri3-0 libxcb-present0 libpciaccess0 \
libpng-dev libxcb-keysyms1-dev libxcb-dri3-dev libx11-dev g++ gcc g++-multilib \
libmirclient-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libxcb-ewmh-dev \
git python python3 bison libx11-xcb-dev liblz4-dev libzstd-dev python3-distutils \
qt5-default ocaml-core ninja-build pkg-config libxml2-dev wayland-protocols

Comment utiliser le script auxiliaire :

(base) root@bxt309:/home/shanlin/pytorch-vulkan/vulkan_1.3.224.1# ./vulkansdk --help
Script to build repositories that are useful for Vulkan development

Usage: ./vulkansdk [--clean|--help] [OPTION...] [REPO...]
OPTIONS:
    [--help|help] prints this usage and exits
    [--clean|-c] deletes all the build directories and exits
    [--debug|-d] build binaries as debuggable (will replace existing binaries)
    [--numjobs #|-j #] specify the number of jobs to use for building, defaults to using 1 job
    [--maxjobs] uses nproc to use max jobs possible
REPOS:
    Any or no repositories can be specified for building. If none are specified, then all are built
        [all] this will build all repositories, same as specifying no repositories
    Repositories that can be specified:
        [glslang] [vulkan-headers] [vulkan-loader|loader]
        [vulkan-validationlayers|layers] [vulkan-tools|tools] [vulkantools|lunarg-tools]
        [shaderc] [spirv-headers] [spirv-tools|spirvtools] [spirv-cross|spirvcross]
        [gfxreconstruct] [spirv-reflect] [dxc] [vulkan-extensionlayer] [vulkan-profiles]
        [volk] [vma]
EXAMPLES:
    './vulkansdk --maxjobs' this will build everything and use as many jobs as possible
    './vulkansdk -j 4 vulkan-validationlayers' this will build vulkan-validationlayers using 4 jobs
    './vulkansdk --debug vulkan-loader' this will build a debuggable loader
    './vulkansdk --clean' deletes all the build directories and exits
    './vulkansdk glslang vulkan-tools' builds glslang and vulkan-tools

En plus du nom de l'outil à compiler, vous pouvez également spécifier les paramètres suivants :

  • -j spécifie le nombre de threads à utiliser pour la compilation
  • –maxjobs Activer le nombre maximum de threads disponibles pour la compilation
  • –debug Compile la version de débogage du fichier binaire
  • –clean supprime tous les répertoires de build créés et quitte

ps : résolvez le problème selon lequel git clone est trop lent lors de la compilation du code source

vim $VULKAN_SDK/source/shaderc/update_shaderc_sources.py

GetUrlChangez la valeur de la variable dans 73 des fonctions hosten "ghproxy.com/https://github.com/"

73    def GetUrl(self, style='https'):
74        """Returns the URL for the repository."""
75        # host = "github.com"
76        host = "ghproxy.com/https://github.com/"
77        sep = '/' if (style is 'https') else ':'
78        return '{style}://{host}{sep}{subrepo}'.format(
79            style=style,
80            host=host,
81            sep=sep,
82            subrepo=self.subrepo)

Référence:

Documentation officielle de Vulkan : LunarXchange (lunarg.com)

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43669978/article/details/132626398
conseillé
Classement