吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對(duì)WSL 2的公共預(yù)覽中的CUDA的期望

星星科技指導(dǎo)員 ? 來(lái)源: NVIDIA ? 作者:Raphael Boissel ? 2022-04-06 14:37 ? 次閱讀

為響應(yīng)大眾需求,微軟 宣布 在 2020 年 5 月的建造大會(huì)上推出了建造( WSL 2 ) – GPU 加速功能。這一特性為許多計(jì)算應(yīng)用程序、專(zhuān)業(yè)工具和工作負(fù)載打開(kāi)了大門(mén),目前這些應(yīng)用程序、專(zhuān)業(yè)工具和工作負(fù)載只能在 Linux 上運(yùn)行,而且可以從 GPU 加速中獲益。

poYBAGJNNUyAN9w2AALOiti3dXc041.png

圖 1 顯示在 wsl2 容器中運(yùn)行 linuxai 框架時(shí)涉及的層的堆棧圖像。

最重要的是, NVIDIA CUDA 的加速現(xiàn)在來(lái)到了 WSL 。在這篇文章中,我們將討論您對(duì) WSL 2 的公共預(yù)覽 中的 CUDA 的期望。

什么是 WSL ?

WSL 是 windows10 的一個(gè)特性,它使您能夠直接在 Windows 上運(yùn)行本機(jī) Linux 命令行工具,而不需要復(fù)雜的雙引導(dǎo)環(huán)境。在內(nèi)部, WSL 是一個(gè)與 Microsoft Windows 操作系統(tǒng)緊密集成的容器化環(huán)境。這使得它可以在傳統(tǒng) Windows 桌面和現(xiàn)代商店應(yīng)用程序的同時(shí)運(yùn)行 Linux 應(yīng)用程序。

WSL 主要是開(kāi)發(fā)人員的工具。如果您在 Linux 容器中處理計(jì)算工作負(fù)載,那么可以使用熟悉的本地 Linux 工具在 Windows PC 上本地開(kāi)發(fā)和測(cè)試工作負(fù)載。通常,這些應(yīng)用程序需要大量的黑客攻擊、第三方框架和庫(kù)才能在 Windows 系統(tǒng)上運(yùn)行。 WSL 2 改變了這一切, wsl2 為 Windows 世界帶來(lái)了完全的 Linux 內(nèi)核支持。

借助于 WSL 2 和 GPU 半虛擬化( GPU -PV )技術(shù),微軟通過(guò)允許您運(yùn)行針對(duì) GPU 硬件的計(jì)算工作負(fù)載,為 Windows 上的 Linux 支持添加了另一個(gè)旋轉(zhuǎn)。在這篇文章的后面,我們將更詳細(xì)地介紹 WSL 2 以及如何在其中添加 GPU 。

CUDA in WSL

要利用 WSL2 中的 WDDM 模型 ,目標(biāo)系統(tǒng)必須安裝支持 MicrosoftGPU 的 GPU 驅(qū)動(dòng)程序。這些驅(qū)動(dòng)程序由 GPU 硬件供應(yīng)商提供,如 NVIDIA 。

CUDA 允許您編程 NVIDIA GPUs 。幾十年來(lái),它一直在 Windows 圖形的 WDDM 模型中得到支持。新的 Microsoft WSL2 容器提供了 GPU 加速, CUDA 可以利用它在 WSL 內(nèi)部運(yùn)行 CUDA 工作負(fù)載。

針對(duì) WDDM 2 . 9 模型的 NVIDIA 顯示驅(qū)動(dòng)程序包含了對(duì) WSL 中 CUDA 的支持。您只需在 Windows 主機(jī)上安裝驅(qū)動(dòng)程序。 WSL ( libCUDA . so )中的 CUDA 用戶模式驅(qū)動(dòng)程序會(huì)自動(dòng)映射到容器內(nèi)部,并添加到那里的加載程序搜索路徑中。

NVIDIA 驅(qū)動(dòng)程序開(kāi)發(fā)團(tuán)隊(duì)為 CUDA 驅(qū)動(dòng)程序添加了對(duì) WDDM 模型和 GPU -PV 的支持,以便能夠在 Windows 上的 Linux 上運(yùn)行它。它仍然是一個(gè)預(yù)覽驅(qū)動(dòng)程序,在 Windows 10 中 WSL 的官方 GPU 支持發(fā)布之前不會(huì)發(fā)布。

圖 2 展示了如何將 CUDA 驅(qū)動(dòng)程序插入到 linuxguest 中新的 WDDM 模型中的簡(jiǎn)單圖。

poYBAGJNNU2ABGV3AACNVx0LH4g870.png

圖 2 。支持在 Linux 客戶機(jī)中運(yùn)行的 CUDA 用戶模式驅(qū)動(dòng)程序的 WDDM 模型圖。

如果您是一名開(kāi)發(fā)人員,在 Microsoft Windows Insider 程序 的 快速環(huán) ( build 20149 或更高版本)的最新 Windows 版本上安裝了 WSL 發(fā)行版,并將容器設(shè)置為在 WSL2 模式下運(yùn)行;如果您是 PC 中的 NVIDIA GPU 的受啟發(fā)所有者,則可以嘗試該驅(qū)動(dòng)程序并在 WSL2 中運(yùn)行工作負(fù)載。您只需在 Windows 主機(jī)操作系統(tǒng)上安裝驅(qū)動(dòng)程序,然后打開(kāi) WSL 容器。沒(méi)有任何額外的努力 CUDA 就會(huì)有 CUDA 的應(yīng)用。圖 3 顯示了在 WSL2 容器中運(yùn)行 CUDA TensorFlow 工作負(fù)載的屏幕截圖。

tensorflow-container-on-wsl-2-1.png

圖 3 。 TensorFlow 在 wsl2 內(nèi)部運(yùn)行的容器。

WSL 中的 GPU 為當(dāng)前僅在本機(jī) Linux 環(huán)境中運(yùn)行的各種 CUDA 計(jì)算應(yīng)用程序打開(kāi)了一扇大門(mén)。

NVIDIA 目前仍在積極開(kāi)展本項(xiàng)目的工作,并進(jìn)行調(diào)整。除其他外,我們正在努力將以前特定于 Linux 的 API 引入 WDDM 層,以便越來(lái)越多的應(yīng)用程序能夠在 WSL 上立即工作。

另一個(gè)重點(diǎn)是性能。如前所述, WSL2 GPU 支持大量利用了 GPU -PV ,這可以在沒(méi)有任何流水線的情況下影響小的 GPU 工作負(fù)載?,F(xiàn)在,我們正在盡可能減少這些開(kāi)銷(xiāo)。

NVML 公司

NVML 不包含在初始驅(qū)動(dòng)程序包中,對(duì)此有一些顧慮。為了解決這個(gè)問(wèn)題,我們計(jì)劃將 NVML 與其他庫(kù)一起引入 WSL 。

我們首先介紹了核心 CUDA 驅(qū)動(dòng)程序,讓您在這個(gè)早期預(yù)覽中嘗試大部分現(xiàn)有的工作負(fù)載。我們意識(shí)到有些容器和應(yīng)用程序甚至在加載 CUDA 之前就利用 NVML 來(lái)查詢 GPU 信息。這就是為什么我們把 NVML 放在 WSL 的首要任務(wù)之一。請(qǐng)繼續(xù)關(guān)注此主題的更多更新。

GPU WSL 中的容器

除了 DirectX 和 CUDA 支持之外, NVIDIA 還增加了對(duì) WSL2 中的 NVIDIA 容器工具包(以前是 NVIDIA -docker2 )的支持。數(shù)據(jù)科學(xué)家準(zhǔn)備在 Linux 本地硬件下運(yùn)行或在云端執(zhí)行的容器化 GPU 工作負(fù)載現(xiàn)在可以在 Windows PC 上的 WSL2 中運(yùn)行。

WSL 不需要特定的包。 NVIDIA 運(yùn)行時(shí)庫(kù)( libNVIDIA -container )可以動(dòng)態(tài)檢測(cè) libdxcore ,并在具有 GPU 加速的 WSL2 環(huán)境中運(yùn)行時(shí)使用它。在安裝了 Docker 和 NVIDIA 容器工具包包之后,這會(huì)自動(dòng)發(fā)生,就像在 Linux 上一樣,允許 GPU – 加速容器開(kāi)箱即用。

我們建議您使用 Docker tools 的最新版本( 19 . 03 或更高版本),以利用對(duì) --gpus 選項(xiàng)的附加支持。要啟用 WSL2 支持,請(qǐng)按照針對(duì) Linux 發(fā)行版的 GitHub repo 上的 自述文件 步驟,安裝可用的最新版本。

那么它是如何工作的呢?所有 wsl2 特定的工作都由 libNVIDIA – 容器 庫(kù)處理。這個(gè)庫(kù)現(xiàn)在可以在運(yùn)行時(shí)檢測(cè) libdxcore . so 并使用它來(lái)檢測(cè)所有暴露在這個(gè)接口上的 GPUs 。

如果需要在容器中使用這些 GPUs ,則可以使用查詢驅(qū)動(dòng)程序存儲(chǔ)的位置,該文件夾包含 Windows 主機(jī)和 WSL2 的所有驅(qū)動(dòng)程序庫(kù) libdxcore . so . NVIDIA 支持的核心庫(kù)進(jìn)行設(shè)置,如圖 4 所示。

discovery-mapping-scheme-used-by-libnvidiacontainer.so_-1-625x253.png

圖 4 。 libNVIDIA 使用的發(fā)現(xiàn)和映射方案 – 集裝箱. so 在 WSL 2 上。

而且,這與 WSL 之外使用的邏輯不同。這是由 libNVIDIA 完全抽象出來(lái)的 – 集裝箱. so 并且應(yīng)該對(duì)最終用戶盡可能透明。這個(gè)早期版本的一個(gè)限制是在 multi-GPU 環(huán)境中缺少 GPU 選擇:所有的 GPUs 在容器中總是可見(jiàn)的。

以下是您可以在 WSL 容器中運(yùn)行的內(nèi)容:您當(dāng)前熟悉的任何 NVIDIA Linux 容器。 NVIDIA 支持專(zhuān)業(yè)人士使用的大多數(shù)現(xiàn)有 Linux 工具和工作流。從 NVIDIA NGC 下載一個(gè)最喜歡的容器工作負(fù)載并嘗試一下。

在下一節(jié)中,我們將描述如何在 WSL2 中運(yùn)行 TensorFlow 和 n -body 容器,工作負(fù)載由 NVIDIA GPUs 加速。

運(yùn)行 N-body 容器

使用 Docker 安裝腳本安裝 Docker :

user@PCName:/mnt/c$ curl https://get.docker.com | sh

安裝 NVIDIA 容器工具包。 WSL2 支持從 NVIDIA -docker2v2 . 3 和底層運(yùn)行庫(kù) libNVIDIA -container 1 . 2 . 0-rc . 1 開(kāi)始提供。

設(shè)置stableexperimental存儲(chǔ)庫(kù)和 GPG 密鑰。支持 wsl2 的運(yùn)行時(shí)更改可以在實(shí)驗(yàn)存儲(chǔ)庫(kù)中找到。

user@PCName:/mnt/c$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list

安裝 NVIDIA 運(yùn)行時(shí)軟件包及其依賴項(xiàng):

user@PCName:/mnt/c$ sudo apt-get update
user@PCName:/mnt/c$ sudo apt-get install -y nvidia-docker2

打開(kāi) WSL 容器并在那里啟動(dòng) Docker 守護(hù)進(jìn)程。您應(yīng)該可以看到 dockerd 服務(wù)的輸出。

user@PCName:/mnt/c$ sudo dockerd

圖 5 。正在啟動(dòng) Docker 守護(hù)程序。

在另一個(gè) WSL 容器窗口中,下載并啟動(dòng)N-body simulation 容器。確保用戶有足夠的權(quán)限下載容器。您可能需要在 sudo 中運(yùn)行以下命令。 GPU 在輸出中突出顯示。

user@PCName:/mnt/c$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

圖 6 。啟動(dòng)N– 車(chē)身模擬容器。

運(yùn)行 TensorFlow 容器

在 WSL2 的 Docker 中嘗試另一個(gè)流行的容器: TensorFlow 。

下載 TensorFlow Docker 映像。為了避免 Docker 連接問(wèn)題,命令在 sudo 中運(yùn)行。

user@PCName:/mnt/c$ docker pull tensorflow/tensorflow:latest-gpu-py3

將 TensorFlow 教程中稍微修改過(guò)的第 15 課 – 使用 GPU?版本保存在主機(jī)的驅(qū)動(dòng)器 C 上,默認(rèn)情況下,該版本在 WSL2 容器中映射為/ mnt / C 。

user@PCName:/mnt/c$ vi ./matmul.py
import sys
import numpy as np
import tensorflow as tf
from datetime import datetime device_name = sys.argv[1] # Choose device from cmd line. Options: gpu or cpu
shape = (int(sys.argv[2]), int(sys.argv[2]))
if device_name == "gpu": device_name = "/gpu:0"
else: device_name = "/cpu:0" tf.compat.v1.disable_eager_execution()
with tf.device(device_name): random_matrix = tf.random.uniform(shape=shape, minval=0, maxval=1) dot_operation = tf.matmul(random_matrix, tf.transpose(random_matrix)) sum_operation = tf.reduce_sum(dot_operation) startTime = datetime.now()
with tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True)) as session: result = session.run(sum_operation) print(result) # Print the results
print("Shape:", shape, "Device:", device_name)
print("Time taken:", datetime.now() - startTime)

在一個(gè) GPU 和一個(gè) CPU 上運(yùn)行這個(gè)從掛載驅(qū)動(dòng)器 C 啟動(dòng)的腳本的結(jié)果如下所示。為了簡(jiǎn)單起見(jiàn),減少了輸出。

user@PCName:/mnt/c$ docker run --runtime=nvidia --rm -ti -v "${PWD}:/mnt/c" tensorflow/tensorflow:latest-gpu-jupyter python /mnt/c/matmul.py gpu 20000

圖 7 。運(yùn)行材料. py 腳本。

對(duì)于早期的計(jì)算場(chǎng)景,當(dāng)在 WSL2 容器中使用 GPU 時(shí),有一個(gè)顯著的加速。

下面是另一個(gè)演示,可以看到由 GPU 加速的工作: Jupyter 筆記本教程。當(dāng)容器啟動(dòng)時(shí),您應(yīng)該會(huì)看到打印到筆記本服務(wù)器的鏈接。

user@PCName:/mnt/c$ docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter 

圖 8 。啟動(dòng) Jupyter 筆記本。

現(xiàn)在您應(yīng)該能夠在 Jupyter 筆記本上運(yùn)行演示示例了。連接到筆記本時(shí),請(qǐng)注意使用 Microsoft Edge browser 中的 localhost ,而不是 127 . 0 . 0 . 1 。

導(dǎo)航到 TensorFlow – 教程并運(yùn)行分類(lèi). ipynb 筆記本電腦。

要查看 Windows PC 的 GPU 加速的工作,請(qǐng)導(dǎo)航到細(xì)胞菜單,選擇全部運(yùn)行,然后檢查 Jupyter 筆記本的 wsl2 容器中的日志。

圖 9 。 Jupyter 筆記本日志。

這個(gè)演示和這個(gè)容器中的一些其他演示突出了虛擬化層在小型提交上的當(dāng)前開(kāi)銷(xiāo)問(wèn)題,前面也提到過(guò)。與這些玩具模型相關(guān)聯(lián)的提交導(dǎo)致 GPU 運(yùn)行時(shí)比同步開(kāi)銷(xiāo)本身要短。在 WSL2 上的這些極小模型中, CPU 時(shí)間 MIG ht 比 GPU 時(shí)間要好。目前正在對(duì)其進(jìn)行優(yōu)化,應(yīng)將其限制在較小的非流水線工作負(fù)載中。

WSL 概述

為了理解 GPU 是如何添加到 wsl2 中的,我們現(xiàn)在討論什么是 Windows 上的 Linux ,以及如何將硬件暴露到容器中。

微軟在 2016 年的 建造 大會(huì)上介紹了 WSL 。它很快獲得了發(fā)展勢(shì)頭,并成為希望在 Linux 開(kāi)發(fā)工具和目標(biāo)工作負(fù)載的同時(shí)運(yùn)行 Office 等 Windows 應(yīng)用程序的 Linux 開(kāi)發(fā)人員的流行工具。

WSL1 允許運(yùn)行未修改的 Linux 二進(jìn)制文件。但是,它仍然使用 Linux 內(nèi)核仿真層,它是作為 NT 內(nèi)核中的一個(gè)子系統(tǒng)實(shí)現(xiàn)的。這個(gè)子系統(tǒng)通過(guò)將調(diào)用轉(zhuǎn)發(fā)到相應(yīng)的 windows10 功能來(lái)處理來(lái)自 Linux 應(yīng)用程序的調(diào)用。

WSL1 是一個(gè)有用的工具,但它并不兼容所有的 Linux 應(yīng)用程序,因?yàn)樗赡苄枰M每個(gè) Linux 系統(tǒng)調(diào)用。一般來(lái)說(shuō),文件系統(tǒng)的訪問(wèn)速度也很慢,這導(dǎo)致了一些實(shí)際應(yīng)用程序無(wú)法接受的性能。

考慮到這一點(diǎn),微軟決定另辟蹊徑,推出了 WSL 的新版本 WSL2 。 WSL2 容器在虛擬化環(huán)境中運(yùn)行完整的 Linux 發(fā)行版,同時(shí)仍然充分利用 windows10newcontainer 系統(tǒng)的全部?jī)?yōu)點(diǎn)。

雖然 wsl2 使用 windows10 的 Hyper-V 服務(wù),但它仍然不是傳統(tǒng)的 VM ,而是一個(gè)輕量級(jí)的實(shí)用 VM 。該實(shí)用程序管理虛擬地址備份內(nèi)存,允許 wsl2 容器從主機(jī) Windows 系統(tǒng)動(dòng)態(tài)分配內(nèi)存。

WSL2 的一些主要目標(biāo)是提高文件系統(tǒng)性能和支持完全的系統(tǒng)調(diào)用兼容性。它還具有更好的整體 Windows 主機(jī)系統(tǒng)集成。它允許從 Windows shell 到運(yùn)行在容器內(nèi)的 Linux 系統(tǒng)的快捷方式,以及對(duì)主機(jī)文件系統(tǒng)的訪問(wèn),這些文件系統(tǒng)自動(dòng)安裝到容器文件系統(tǒng)的選定目錄中。

WSL2 已作為 Windows Insider 程序的預(yù)覽功能啟用,并作為最近的 Windows 10 更新( 2004 版)發(fā)布。

在最新的 Windows 版本中, wsl2 容器有更多的改進(jìn),從網(wǎng)絡(luò)堆棧到底層存儲(chǔ) VHD 。描述所有細(xì)節(jié)將超出本文的范圍。有關(guān) WSL2 容器的一些有趣和令人興奮的新特性的更多信息,請(qǐng)參見(jiàn) 比較 wsl2 和 WSL1 。

WSL 2 Linux 內(nèi)核

WSL2 中的 Linux 內(nèi)核是由 Microsoft 從最新的穩(wěn)定分支構(gòu)建的,它基于內(nèi)核。 org 。 這個(gè)內(nèi)核專(zhuān)門(mén)針對(duì) wsl2 進(jìn)行了調(diào)優(yōu),針對(duì)大小和性能進(jìn)行了優(yōu)化,以提供 Windows 上的 Linux 體驗(yàn)。內(nèi)核由 windowsupdate 提供服務(wù),這意味著您無(wú)需自己管理就可以獲得最新的安全修復(fù)和內(nèi)核改進(jìn)。

微軟在 WSL 中支持一些 Linux 發(fā)行版。遵循開(kāi)放源碼社區(qū)的規(guī)則, wsl2 內(nèi)核源代碼是公共的,可以在 WSL2 Linux 內(nèi)核 GitHub repo 上獲得,并進(jìn)行必要的修改以允許系統(tǒng)與 windows10 主機(jī)集成。

GPU in WSL

微軟開(kāi)發(fā)人員通過(guò) GPU -PV 技術(shù)將真正的 GPU 硬件支持引入到 wsl2 容器中,操作系統(tǒng)圖形內(nèi)核( dxgkrnl )將運(yùn)行在來(lái)賓虛擬機(jī)中的用戶模式組件的調(diào)用封送到主機(jī)上的內(nèi)核模式驅(qū)動(dòng)程序。

微軟在獨(dú)立硬件供應(yīng)商( ihv )的幫助下,開(kāi)發(fā)了這項(xiàng)技術(shù),作為其 WDDM 圖形驅(qū)動(dòng)程序模型的一個(gè)特性。 NVIDIA 圖形驅(qū)動(dòng)程序從 Windows 操作系統(tǒng)的 Windows Insider 程序的早期功能預(yù)覽開(kāi)始就支持 GPU -PV 。所有當(dāng)前支持的 NVIDIA GPUs 都可以暴露在運(yùn)行在 Hyper-vvm 客戶機(jī)中的 Windows 操作系統(tǒng)中。

對(duì)于 WSL 2 能夠利用 GPU -PV 的能力,微軟必須在 Linux 客戶機(jī)中實(shí)現(xiàn)他們的圖形框架的基礎(chǔ):使用 GPU -PV 協(xié)議的 WDM 模型。新的微軟驅(qū)動(dòng)程序支持 Linux 上的 WDDM 模型,稱為 dxgkrnl 。它也可以作為源代碼項(xiàng)目在 WSL2 Linux 內(nèi)核 GitHub repo 中提供。

dxgkrnl 驅(qū)動(dòng)程序有望為 wddm2 。 9 版本的 wsl2 容器提供 GPU 加速支持。微軟解釋說(shuō), dxgkrnl 是一個(gè)基于 GPU -PV 協(xié)議的 LinuxGPU 驅(qū)動(dòng)程序,它與同名的 Windows 驅(qū)動(dòng)程序沒(méi)有任何共同之處。

目前,您可以下載 NVIDIA WDDM 2 。 9 驅(qū)動(dòng)程序預(yù)覽版 。在接下來(lái)的幾個(gè)月里, NVIDIA WDDM 2 。 9 驅(qū)動(dòng)程序?qū)?Windows 更新的 WIP 版本發(fā)布,這使得不必手動(dòng)下載和安裝驅(qū)動(dòng)程序。

GPU – 簡(jiǎn)而言之, PV

dxgkrnl 驅(qū)動(dòng)程序在 linuxguest 中將新的 / dev / dxg 設(shè)備公開(kāi)給用戶模式。作為 dxcore 庫(kù)的一部分, D3DKMT 內(nèi)核服務(wù)層也被移植到 Linux 上。它使用一組私有 IOCTL 調(diào)用與 dxgkrnl 通信

dxgkrnl 的客戶 Linux 版本使用多個(gè) VM 總線通道連接到 Windows 主機(jī)上的 dxg 內(nèi)核。主機(jī)上的 dxg 內(nèi)核處理 Linux 進(jìn)程提交的方式與從運(yùn)行在 WDDM 模型中的本機(jī) Windows 應(yīng)用程序的進(jìn)程提交相同。它將它們發(fā)送到 KMD (一個(gè) IHV 特定的內(nèi)核模式驅(qū)動(dòng)程序), KMD 準(zhǔn)備好它們并將它們提交給硬件 GPU 。圖 10 顯示了這種通信信道的簡(jiǎn)化圖。

圖 10 。 一個(gè)簡(jiǎn)化的圖表,顯示了在 linuxguest 中支持新圖形 dxg 設(shè)備的 Windows 主機(jī)組件。

NVIDIA 驅(qū)動(dòng)程序在許多版本中都支持 Windows 10GPU -PV 和 Windows 來(lái)賓。 NVIDIA GPUs 可用于在所有使用 Microsoft 虛擬化層并使用 GPU -PV 功能添加 vGPU 的最終用戶 Windows 10 應(yīng)用程序中加速計(jì)算和圖形:

Windows 沙盒

Microsoft Defender 應(yīng)用程序保護(hù)

Microsoft HoloLens 2 模擬器

圖 11 顯示了在 NVIDIA GeForce GTX 1070 GPU 上運(yùn)行 Windows 沙盒容器中的一個(gè)示例 DirectX 應(yīng)用程序。

圖 11 。 Windows 沙盒容器在 NVIDIA GeForce GTX 1070GPU 上獲得 GPU 加速度。

用戶模式支持

為了在 WSL 中啟用圖形, Windows 圖形團(tuán)隊(duì)還將一個(gè)用戶模式組件移植到 Linux : dxcore 。

dxcore 庫(kù)提供了一個(gè) API 函數(shù)來(lái)枚舉系統(tǒng)中與 WDDM 兼容的圖形適配器。它旨在成為 Windows 和 Linux 中 DXGI 適配器枚舉的跨平臺(tái)、低級(jí)別替代品。它還抽象了對(duì) dxgkrnl 服務(wù)( Linux 上的 IOCTLs 和 Windows 上的 GDI 調(diào)用)的訪問(wèn), D3DKMT 層 API 由 CUDA 和其他依賴 WSL 中 WDDM 模型支持的用戶模式組件使用。

根據(jù)微軟的說(shuō)法, dxcore ( libdxcore 。 so )庫(kù)將在 Windows 和 Linux 上提供。 NVIDIA 計(jì)劃在驅(qū)動(dòng)程序中添加對(duì) directx12 和 CUDA api 的支持,目標(biāo)是 wddm2 。 9 模型的新 WSL 特性。兩個(gè) API 庫(kù)都將鏈接到 dxcore ,以便它們可以指示 dxg 內(nèi)核將它們的請(qǐng)求封送到主機(jī)上的 KMD 。

今天就試試吧

如果您想使用您的 Windows PC 從舒適的 Linux 環(huán)境中進(jìn)行真正的 ML 和 AI 開(kāi)發(fā), WSL 中對(duì) CUDA 的支持將給您帶來(lái)一個(gè)令人興奮的機(jī)會(huì)。 WSL 是 DockerCUDA 容器被證明是數(shù)據(jù)科學(xué)家中最流行的計(jì)算環(huán)境之一。

關(guān)于作者

Raphael Boissel 領(lǐng)導(dǎo) Windows 平臺(tái)的 CUDA 工程。他擁有法國(guó)工程學(xué)院 EPITA 計(jì)算機(jī)科學(xué)碩士學(xué)位。Konstantin Morozov 是 NVIDIA 內(nèi)核模式驅(qū)動(dòng)程序開(kāi)發(fā)團(tuán)隊(duì)的主要開(kāi)發(fā)人員,負(fù)責(zé)系統(tǒng)軟件設(shè)計(jì)、體系結(jié)構(gòu)和實(shí)現(xiàn)。他在內(nèi)核和用戶模式驅(qū)動(dòng)程序以及應(yīng)用程序開(kāi)發(fā)方面擁有廣泛的專(zhuān)業(yè)知識(shí),對(duì) Windows 和 Linux 平臺(tái)上的操作系統(tǒng)有很深的了解。在 NVIDIA 之前,康斯坦丁曾在 Advanced Micro Devices 和 BSquare 工作。他在莫斯科電力工程學(xué)院獲得碩士學(xué)位。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5076

    瀏覽量

    103728
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210402
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3570

    瀏覽量

    89307
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自帶尺寸標(biāo)注的3D預(yù)覽為制造商組件提供更強(qiáng)勁的客戶體驗(yàn)

    工業(yè)組件制造商通過(guò)將尺寸直接嵌入到3D產(chǎn)品預(yù)覽,從而簡(jiǎn)化了查找、配置、選型和購(gòu)買(mǎi)產(chǎn)品的過(guò)程。此功能可幫助工程師快速確定產(chǎn)品的規(guī)格,以及螺栓間距、軸尺寸、內(nèi)徑(ID)、外徑 (OD) 等關(guān)鍵尺寸
    發(fā)表于 01-20 16:09

    在Exynos4412開(kāi)發(fā)板上調(diào)試TVP5151,接口是攝像頭接口,預(yù)覽時(shí)沒(méi)有全屏,而且預(yù)覽圖像是黑白的,為什么?

    我在Exynos4412開(kāi)發(fā)板上調(diào)試TVP5151,接口是攝像頭接口,預(yù)覽時(shí)沒(méi)有全屏,而且預(yù)覽圖像是黑白的,沒(méi)有顏色,請(qǐng)問(wèn)有遇到過(guò)此問(wèn)題嗎?是系統(tǒng)側(cè)的問(wèn)題,還是TVP5151端輸出格式不對(duì),謝謝!
    發(fā)表于 01-10 08:00

    RHEL即將成為微軟WSL的官方Linux發(fā)行版

    紅帽和微軟共同宣布, Red Hat Enterprise Linux(RHEL)即將成為微軟 Windows Subsystem for Linux(WSL)的官方 Linux 發(fā)行版 。 “對(duì)于
    的頭像 發(fā)表于 11-26 11:03 ?394次閱讀

    有沒(méi)有大佬知道NI vision 有沒(méi)有辦法通過(guò)gpu和cuda來(lái)加速圖像處理

    有沒(méi)有大佬知道NI vision 有沒(méi)有辦法通過(guò)gpu和cuda來(lái)加速圖像處理
    發(fā)表于 10-20 09:14

    了解Davinci預(yù)覽引擎

    電子發(fā)燒友網(wǎng)站提供《了解Davinci預(yù)覽引擎.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 09:56 ?0次下載
    了解Davinci<b class='flag-5'>預(yù)覽</b>引擎

    怎么在TMDSEVM6678: 6678自帶的FFT接口和CUDA提供CUFFT函數(shù)庫(kù)選擇?

    請(qǐng)教一下gpgpu上包括4個(gè)Riscv cpu和一個(gè)DPU, 沒(méi)有6678,要替換原來(lái)信號(hào)處理用的6678,該怎么在6678自帶的FFT接口和CUDA提供CUFFT函數(shù)庫(kù)選擇?
    發(fā)表于 09-27 07:20

    蘋(píng)果推出visionOS 2.1的開(kāi)發(fā)者預(yù)覽版Beta 2

     今日,蘋(píng)果公司針對(duì)Vision Pro用戶群體,正式推出了visionOS 2.1的開(kāi)發(fā)者預(yù)覽版Beta 2,其內(nèi)部版本編號(hào)為22N5553d。此次快速迭代,距離上一Beta或RC版本的發(fā)布僅短短
    的頭像 發(fā)表于 09-24 16:16 ?648次閱讀

    打破英偉達(dá)CUDA壁壘?AMD顯卡現(xiàn)在也能無(wú)縫適配CUDA

    、英特爾等廠商雖然在努力追趕,但目前還未能看到有威脅英偉達(dá)地位的可能。 ? 最近一家英國(guó)公司Spectral Compute推出了一款方案,可以為AMD的GPU原生編譯CUDA源代碼,目前正在RNDA2、RDNA3上進(jìn)行規(guī)模測(cè)試。這或許可以打破
    的頭像 發(fā)表于 07-19 00:16 ?4886次閱讀

    WSL的ubuntu里面的VSCode燒寫(xiě)不成功是怎么回事?

    系統(tǒng)Windows10,WSL版本2,ubuntu版本20.04 VScode里面安裝IDF插件,編譯成功 燒錄時(shí),點(diǎn)左下角插頭圖標(biāo)能檢測(cè)到ESP32核心板的串口COM6 燒寫(xiě)時(shí)提示 No module named 'serial' 請(qǐng)問(wèn)能不能配置CO
    發(fā)表于 06-21 08:14

    軟件生態(tài)上超越CUDA,究竟有多難?

    神壇的,還是圍繞CUDA打造的一系列軟件生態(tài)。 ? 英偉達(dá)——CUDA的絕對(duì)統(tǒng)治 ? 相信對(duì)GPU有過(guò)一定了解的都知道,英偉達(dá)的最大護(hù)城河就是CUDA。CUDA在后端架構(gòu)上處于絕對(duì)的統(tǒng)
    的頭像 發(fā)表于 06-20 00:09 ?3792次閱讀

    wsl2安裝的idf,在monitor時(shí)會(huì)報(bào)錯(cuò)的原因?

    wsl2安裝的idf,使用vscode 擴(kuò)展,功能一切正常,但是在 monitor 時(shí)會(huì)報(bào)下列錯(cuò)誤 xtensa-esp32-elf-addr2line -pfiaC -e build
    發(fā)表于 06-17 07:30

    WSL2+ubuntu+vscode+esp-idf環(huán)境,刷寫(xiě)時(shí)選擇ESP32-S3(Built-in USB JTAG)、UART模式提示報(bào)錯(cuò)的原因?

    系統(tǒng)為WIN11專(zhuān)業(yè)版,板子為ESP32-S3-WROOM-1,通過(guò)340C連接到RX,TX。Arduino下可以正常刷寫(xiě)。 在WSL2+ubuntu+vscode+esp-idf環(huán)境,編譯
    發(fā)表于 06-14 06:23

    ESP32S3用WSL作為開(kāi)發(fā)環(huán)境, log開(kāi)啟verbose有錯(cuò)誤提示,為什么?

    xtensa-esp32-elf-addr2line -pfiaC -e \\wsl$Ubuntu/home/younggu/learned/blink/build/blink.elf
    發(fā)表于 06-05 06:35

    Keil使用AC6編譯提示CUDA版本過(guò)高怎么解決?

    \' ArmClang: warning: Unknown CUDA version 10.2. Assuming the latest supported version 10.1
    發(fā)表于 04-11 07:56

    微軟WSL更新支持IPv6流量透過(guò)Linux

    據(jù)悉,微軟近期對(duì)Windows Subsystem for Linux(WSL)進(jìn)行了2.2.2版本更新,包含多項(xiàng)優(yōu)化改進(jìn)。其中最引人注目的便是新增的nft規(guī)則,允許IPv6數(shù)據(jù)包經(jīng)過(guò)Linux容器傳輸。
    的頭像 發(fā)表于 04-08 10:23 ?1081次閱讀
    bet365指数| 百家乐官网之对子的技巧| 什么是百家乐赌博| 昆明百家乐官网装修装潢有限公司| 大发888出纳| 做生意讲究风水吗| e世博百家乐官网娱乐场| 德州扑克术语| 游戏百家乐押金| JJ百家乐官网的玩法技巧和规则| 易胜博百家乐官网输| 德州扑克 下载| 大世界百家乐的玩法技巧和规则| 百家乐类游戏平台| 顶级赌场官网| 百家乐群详解包杀| 百家乐赌机厂家| 24山向名| 真人百家乐官网蓝盾娱乐场| 百家乐官网博彩通网| 千亿国际娱乐城| 立博网址| 亲朋棋牌刷金币| 大发888-娱乐网| 如何胜百家乐的玩法技巧和规则| 免费百家乐官网追号| 神娱乐百家乐官网的玩法技巧和规则 | 百家乐波音平台导航网| 金满堂百家乐官网的玩法技巧和规则| 澳门百家乐官网会出千吗| 百家乐官网最长的缆| 博狗百家乐官网真实| www.18lk.com| 智尊国际娱乐| bet365在线体育投注| 大发888注册开户| 德州扑克女王| 皇冠国际| 珠海市| 百家乐官网所有技巧| A8百家乐官网现金网|