0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

对WSL 2的公共预览中的CUDA的期望

星星科技指导员 来源: NVIDIA 作者:Raphael Boissel 2022-04-06 14:37 次阅读

为响应大众需求,微软 宣布 在 2020 年 5 月的建造大会上推出了建造( WSL 2 ) – GPU 加速功能。这一特性为许多计算应用程序、专业工具和工作负载打开了大门,目前这些应用程序、专业工具和工作负载只能在 Linux 上运行,而且可以从 GPU 加速中获益。

poYBAGJNNUyAN9w2AALOiti3dXc041.png

图 1 显示在 wsl2 容器中运行 linuxai 框架时涉及的层的堆栈图像。

最重要的是, NVIDIA CUDA 的加速现在来到了 WSL 。在这篇文章中,我们将讨论您对 WSL 2 的公共预览 中的 CUDA 的期望。

什么是 WSL ?

WSL 是 windows10 的一个特性,它使您能够直接在 Windows 上运行本机 Linux 命令行工具,而不需要复杂的双引导环境。在内部, WSL 是一个与 Microsoft Windows 操作系统紧密集成的容器化环境。这使得它可以在传统 Windows 桌面和现代商店应用程序的同时运行 Linux 应用程序。

WSL 主要是开发人员的工具。如果您在 Linux 容器中处理计算工作负载,那么可以使用熟悉的本地 Linux 工具在 Windows PC 上本地开发和测试工作负载。通常,这些应用程序需要大量的黑客攻击、第三方框架和库才能在 Windows 系统上运行。 WSL 2 改变了这一切, wsl2 为 Windows 世界带来了完全的 Linux 内核支持。

借助于 WSL 2 和 GPU 半虚拟化( GPU -PV )技术,微软通过允许您运行针对 GPU 硬件的计算工作负载,为 Windows 上的 Linux 支持添加了另一个旋转。在这篇文章的后面,我们将更详细地介绍 WSL 2 以及如何在其中添加 GPU 。

CUDA in WSL

要利用 WSL2 中的 WDDM 模型 ,目标系统必须安装支持 MicrosoftGPU 的 GPU 驱动程序。这些驱动程序由 GPU 硬件供应商提供,如 NVIDIA 。

CUDA 允许您编程 NVIDIA GPUs 。几十年来,它一直在 Windows 图形的 WDDM 模型中得到支持。新的 Microsoft WSL2 容器提供了 GPU 加速, CUDA 可以利用它在 WSL 内部运行 CUDA 工作负载。

针对 WDDM 2 . 9 模型的 NVIDIA 显示驱动程序包含了对 WSL 中 CUDA 的支持。您只需在 Windows 主机上安装驱动程序。 WSL ( libCUDA . so )中的 CUDA 用户模式驱动程序会自动映射到容器内部,并添加到那里的加载程序搜索路径中。

NVIDIA 驱动程序开发团队为 CUDA 驱动程序添加了对 WDDM 模型和 GPU -PV 的支持,以便能够在 Windows 上的 Linux 上运行它。它仍然是一个预览驱动程序,在 Windows 10 中 WSL 的官方 GPU 支持发布之前不会发布。

图 2 展示了如何将 CUDA 驱动程序插入到 linuxguest 中新的 WDDM 模型中的简单图。

poYBAGJNNU2ABGV3AACNVx0LH4g870.png

图 2 。支持在 Linux 客户机中运行的 CUDA 用户模式驱动程序的 WDDM 模型图。

如果您是一名开发人员,在 Microsoft Windows Insider 程序 的 快速环 ( build 20149 或更高版本)的最新 Windows 版本上安装了 WSL 发行版,并将容器设置为在 WSL2 模式下运行;如果您是 PC 中的 NVIDIA GPU 的受启发所有者,则可以尝试该驱动程序并在 WSL2 中运行工作负载。您只需在 Windows 主机操作系统上安装驱动程序,然后打开 WSL 容器。没有任何额外的努力 CUDA 就会有 CUDA 的应用。图 3 显示了在 WSL2 容器中运行 CUDA TensorFlow 工作负载的屏幕截图。

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

图 3 。 TensorFlow 在 wsl2 内部运行的容器。

WSL 中的 GPU 为当前仅在本机 Linux 环境中运行的各种 CUDA 计算应用程序打开了一扇大门。

NVIDIA 目前仍在积极开展本项目的工作,并进行调整。除其他外,我们正在努力将以前特定于 Linux 的 API 引入 WDDM 层,以便越来越多的应用程序能够在 WSL 上立即工作。

另一个重点是性能。如前所述, WSL2 GPU 支持大量利用了 GPU -PV ,这可以在没有任何流水线的情况下影响小的 GPU 工作负载。现在,我们正在尽可能减少这些开销。

NVML 公司

NVML 不包含在初始驱动程序包中,对此有一些顾虑。为了解决这个问题,我们计划将 NVML 与其他库一起引入 WSL 。

我们首先介绍了核心 CUDA 驱动程序,让您在这个早期预览中尝试大部分现有的工作负载。我们意识到有些容器和应用程序甚至在加载 CUDA 之前就利用 NVML 来查询 GPU 信息。这就是为什么我们把 NVML 放在 WSL 的首要任务之一。请继续关注此主题的更多更新。

GPU WSL 中的容器

除了 DirectX 和 CUDA 支持之外, NVIDIA 还增加了对 WSL2 中的 NVIDIA 容器工具包(以前是 NVIDIA -docker2 )的支持。数据科学家准备在 Linux 本地硬件下运行或在云端执行的容器化 GPU 工作负载现在可以在 Windows PC 上的 WSL2 中运行。

WSL 不需要特定的包。 NVIDIA 运行时库( libNVIDIA -container )可以动态检测 libdxcore ,并在具有 GPU 加速的 WSL2 环境中运行时使用它。在安装了 Docker 和 NVIDIA 容器工具包包之后,这会自动发生,就像在 Linux 上一样,允许 GPU – 加速容器开箱即用。

我们建议您使用 Docker tools 的最新版本( 19 . 03 或更高版本),以利用对 --gpus 选项的附加支持。要启用 WSL2 支持,请按照针对 Linux 发行版的 GitHub repo 上的 自述文件 步骤,安装可用的最新版本。

那么它是如何工作的呢?所有 wsl2 特定的工作都由 libNVIDIA – 容器 库处理。这个库现在可以在运行时检测 libdxcore . so 并使用它来检测所有暴露在这个接口上的 GPUs 。

如果需要在容器中使用这些 GPUs ,则可以使用查询驱动程序存储的位置,该文件夹包含 Windows 主机和 WSL2 的所有驱动程序库 libdxcore . so . NVIDIA 支持的核心库进行设置,如图 4 所示。

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

图 4 。 libNVIDIA 使用的发现和映射方案 – 集装箱. so 在 WSL 2 上。

而且,这与 WSL 之外使用的逻辑不同。这是由 libNVIDIA 完全抽象出来的 – 集装箱. so 并且应该对最终用户尽可能透明。这个早期版本的一个限制是在 multi-GPU 环境中缺少 GPU 选择:所有的 GPUs 在容器中总是可见的。

以下是您可以在 WSL 容器中运行的内容:您当前熟悉的任何 NVIDIA Linux 容器。 NVIDIA 支持专业人士使用的大多数现有 Linux 工具和工作流。从 NVIDIA NGC 下载一个最喜欢的容器工作负载并尝试一下。

在下一节中,我们将描述如何在 WSL2 中运行 TensorFlow 和 n -body 容器,工作负载由 NVIDIA GPUs 加速。

运行 N-body 容器

使用 Docker 安装脚本安装 Docker :

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

安装 NVIDIA 容器工具包。 WSL2 支持从 NVIDIA -docker2v2 . 3 和底层运行库 libNVIDIA -container 1 . 2 . 0-rc . 1 开始提供。

设置stableexperimental存储库和 GPG 密钥。支持 wsl2 的运行时更改可以在实验存储库中找到。

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 运行时软件包及其依赖项:

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

打开 WSL 容器并在那里启动 Docker 守护进程。您应该可以看到 dockerd 服务的输出。

user@PCName:/mnt/c$ sudo dockerd

图 5 。正在启动 Docker 守护程序。

在另一个 WSL 容器窗口中,下载并启动N-body simulation 容器。确保用户有足够的权限下载容器。您可能需要在 sudo 中运行以下命令。 GPU 在输出中突出显示。

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

图 6 。启动N– 车身模拟容器。

运行 TensorFlow 容器

在 WSL2 的 Docker 中尝试另一个流行的容器: TensorFlow 。

下载 TensorFlow Docker 映像。为了避免 Docker 连接问题,命令在 sudo 中运行。

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

将 TensorFlow 教程中稍微修改过的第 15 课 – 使用 GPU 版本保存在主机的驱动器 C 上,默认情况下,该版本在 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)

在一个 GPU 和一个 CPU 上运行这个从挂载驱动器 C 启动的脚本的结果如下所示。为了简单起见,减少了输出。

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 。运行材料. py 脚本。

对于早期的计算场景,当在 WSL2 容器中使用 GPU 时,有一个显著的加速。

下面是另一个演示,可以看到由 GPU 加速的工作: Jupyter 笔记本教程。当容器启动时,您应该会看到打印到笔记本服务器的链接。

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

图 8 。启动 Jupyter 笔记本。

现在您应该能够在 Jupyter 笔记本上运行演示示例了。连接到笔记本时,请注意使用 Microsoft Edge browser 中的 localhost ,而不是 127 . 0 . 0 . 1 。

导航到 TensorFlow – 教程并运行分类. ipynb 笔记本电脑

要查看 Windows PC 的 GPU 加速的工作,请导航到细胞菜单,选择全部运行,然后检查 Jupyter 笔记本的 wsl2 容器中的日志。

图 9 。 Jupyter 笔记本日志。

这个演示和这个容器中的一些其他演示突出了虚拟化层在小型提交上的当前开销问题,前面也提到过。与这些玩具模型相关联的提交导致 GPU 运行时比同步开销本身要短。在 WSL2 上的这些极小模型中, CPU 时间 MIG ht 比 GPU 时间要好。目前正在对其进行优化,应将其限制在较小的非流水线工作负载中。

WSL 概述

为了理解 GPU 是如何添加到 wsl2 中的,我们现在讨论什么是 Windows 上的 Linux ,以及如何将硬件暴露到容器中。

微软在 2016 年的 建造 大会上介绍了 WSL 。它很快获得了发展势头,并成为希望在 Linux 开发工具和目标工作负载的同时运行 Office 等 Windows 应用程序的 Linux 开发人员的流行工具。

WSL1 允许运行未修改的 Linux 二进制文件。但是,它仍然使用 Linux 内核仿真层,它是作为 NT 内核中的一个子系统实现的。这个子系统通过将调用转发到相应的 windows10 功能来处理来自 Linux 应用程序的调用。

WSL1 是一个有用的工具,但它并不兼容所有的 Linux 应用程序,因为它可能需要模拟每个 Linux 系统调用。一般来说,文件系统的访问速度也很慢,这导致了一些实际应用程序无法接受的性能。

考虑到这一点,微软决定另辟蹊径,推出了 WSL 的新版本 WSL2 。 WSL2 容器在虚拟化环境中运行完整的 Linux 发行版,同时仍然充分利用 windows10newcontainer 系统的全部优点。

虽然 wsl2 使用 windows10 的 Hyper-V 服务,但它仍然不是传统的 VM ,而是一个轻量级的实用 VM 。该实用程序管理虚拟地址备份内存,允许 wsl2 容器从主机 Windows 系统动态分配内存。

WSL2 的一些主要目标是提高文件系统性能和支持完全的系统调用兼容性。它还具有更好的整体 Windows 主机系统集成。它允许从 Windows shell 到运行在容器内的 Linux 系统的快捷方式,以及对主机文件系统的访问,这些文件系统自动安装到容器文件系统的选定目录中。

WSL2 已作为 Windows Insider 程序的预览功能启用,并作为最近的 Windows 10 更新( 2004 版)发布。

在最新的 Windows 版本中, wsl2 容器有更多的改进,从网络堆栈到底层存储 VHD 。描述所有细节将超出本文的范围。有关 WSL2 容器的一些有趣和令人兴奋的新特性的更多信息,请参见 比较 wsl2 和 WSL1 。

WSL 2 Linux 内核

WSL2 中的 Linux 内核是由 Microsoft 从最新的稳定分支构建的,它基于内核。 org 。 这个内核专门针对 wsl2 进行了调优,针对大小和性能进行了优化,以提供 Windows 上的 Linux 体验。内核由 windowsupdate 提供服务,这意味着您无需自己管理就可以获得最新的安全修复和内核改进。

微软在 WSL 中支持一些 Linux 发行版。遵循开放源码社区的规则, wsl2 内核源代码是公共的,可以在 WSL2 Linux 内核 GitHub repo 上获得,并进行必要的修改以允许系统与 windows10 主机集成。

GPU in WSL

微软开发人员通过 GPU -PV 技术将真正的 GPU 硬件支持引入到 wsl2 容器中,操作系统图形内核( dxgkrnl )将运行在来宾虚拟机中的用户模式组件的调用封送到主机上的内核模式驱动程序。

微软在独立硬件供应商( ihv )的帮助下,开发了这项技术,作为其 WDDM 图形驱动程序模型的一个特性。 NVIDIA 图形驱动程序从 Windows 操作系统的 Windows Insider 程序的早期功能预览开始就支持 GPU -PV 。所有当前支持的 NVIDIA GPUs 都可以暴露在运行在 Hyper-vvm 客户机中的 Windows 操作系统中。

对于 WSL 2 能够利用 GPU -PV 的能力,微软必须在 Linux 客户机中实现他们的图形框架的基础:使用 GPU -PV 协议的 WDM 模型。新的微软驱动程序支持 Linux 上的 WDDM 模型,称为 dxgkrnl 。它也可以作为源代码项目在 WSL2 Linux 内核 GitHub repo 中提供。

dxgkrnl 驱动程序有望为 wddm2 。 9 版本的 wsl2 容器提供 GPU 加速支持。微软解释说, dxgkrnl 是一个基于 GPU -PV 协议的 LinuxGPU 驱动程序,它与同名的 Windows 驱动程序没有任何共同之处。

目前,您可以下载 NVIDIA WDDM 2 。 9 驱动程序预览版 。在接下来的几个月里, NVIDIA WDDM 2 。 9 驱动程序将从 Windows 更新的 WIP 版本发布,这使得不必手动下载和安装驱动程序。

GPU – 简而言之, PV

dxgkrnl 驱动程序在 linuxguest 中将新的 / dev / dxg 设备公开给用户模式。作为 dxcore 库的一部分, D3DKMT 内核服务层也被移植到 Linux 上。它使用一组私有 IOCTL 调用与 dxgkrnl 通信

dxgkrnl 的客户 Linux 版本使用多个 VM 总线通道连接到 Windows 主机上的 dxg 内核。主机上的 dxg 内核处理 Linux 进程提交的方式与从运行在 WDDM 模型中的本机 Windows 应用程序的进程提交相同。它将它们发送到 KMD (一个 IHV 特定的内核模式驱动程序), KMD 准备好它们并将它们提交给硬件 GPU 。图 10 显示了这种通信信道的简化图。

图 10 。 一个简化的图表,显示了在 linuxguest 中支持新图形 dxg 设备的 Windows 主机组件。

NVIDIA 驱动程序在许多版本中都支持 Windows 10GPU -PV 和 Windows 来宾。 NVIDIA GPUs 可用于在所有使用 Microsoft 虚拟化层并使用 GPU -PV 功能添加 vGPU 的最终用户 Windows 10 应用程序中加速计算和图形:

Windows 沙盒

Microsoft Defender 应用程序保护

Microsoft HoloLens 2 模拟器

图 11 显示了在 NVIDIA GeForce GTX 1070 GPU 上运行 Windows 沙盒容器中的一个示例 DirectX 应用程序。

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

用户模式支持

为了在 WSL 中启用图形, Windows 图形团队还将一个用户模式组件移植到 Linux : dxcore 。

dxcore 库提供了一个 API 函数来枚举系统中与 WDDM 兼容的图形适配器。它旨在成为 Windows 和 Linux 中 DXGI 适配器枚举的跨平台、低级别替代品。它还抽象了对 dxgkrnl 服务( Linux 上的 IOCTLs 和 Windows 上的 GDI 调用)的访问, D3DKMT 层 API 由 CUDA 和其他依赖 WSL 中 WDDM 模型支持的用户模式组件使用。

根据微软的说法, dxcore ( libdxcore 。 so )库将在 Windows 和 Linux 上提供。 NVIDIA 计划在驱动程序中添加对 directx12 和 CUDA api 的支持,目标是 wddm2 。 9 模型的新 WSL 特性。两个 API 库都将链接到 dxcore ,以便它们可以指示 dxg 内核将它们的请求封送到主机上的 KMD 。

今天就试试吧

如果您想使用您的 Windows PC 从舒适的 Linux 环境中进行真正的 ML 和 AI 开发, WSL 中对 CUDA 的支持将给您带来一个令人兴奋的机会。 WSL 是 DockerCUDA 容器被证明是数据科学家中最流行的计算环境之一。

关于作者

Raphael Boissel 领导 Windows 平台的 CUDA 工程。他拥有法国工程学院 EPITA 计算机科学硕士学位。Konstantin Morozov 是 NVIDIA 内核模式驱动程序开发团队的主要开发人员,负责系统软件设计、体系结构和实现。他在内核和用户模式驱动程序以及应用程序开发方面拥有广泛的专业知识,对 Windows 和 Linux 平台上的操作系统有很深的了解。在 NVIDIA 之前,康斯坦丁曾在 Advanced Micro Devices 和 BSquare 工作。他在莫斯科电力工程学院获得硕士学位。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4929

    浏览量

    102791
  • Linux
    +关注

    关注

    87

    文章

    11221

    浏览量

    208882
  • WINDOWS
    +关注

    关注

    3

    文章

    3524

    浏览量

    88399
收藏 人收藏

    评论

    相关推荐

    有没有大佬知道NI vision 有没有办法通过gpu和cuda来加速图像处理

    有没有大佬知道NI vision 有没有办法通过gpu和cuda来加速图像处理
    发表于 10-20 09:14

    了解Davinci预览引擎

    电子发烧友网站提供《了解Davinci预览引擎.pdf》资料免费下载
    发表于 10-15 09:56 0次下载
    了解Davinci<b class='flag-5'>预览</b>引擎

    怎么在TMDSEVM6678: 6678自带的FFT接口和CUDA提供CUFFT函数库选择?

    请教一下gpgpu上包括4个Riscv cpu和一个DPU, 没有6678,要替换原来信号处理用的6678,该怎么在6678自带的FFT接口和CUDA提供CUFFT函数库选择?
    发表于 09-27 07:20

    打破英伟达CUDA壁垒?AMD显卡现在也能无缝适配CUDA

    、英特尔等厂商虽然在努力追赶,但目前还未能看到有威胁英伟达地位的可能。   最近一家英国公司Spectral Compute推出了一款方案,可以为AMD的GPU原生编译CUDA源代码,目前正在RNDA2、RDNA3上进行规模测试。这或许可以打破
    的头像 发表于 07-19 00:16 4507次阅读

    WSL的ubuntu里面的VSCode烧写不成功是怎么回事?

    系统Windows10,WSL版本2,ubuntu版本20.04 VScode里面安装IDF插件,编译成功 烧录时,点左下角插头图标能检测到ESP32核心板的串口COM6 烧写时提示 No module named 'serial' 请问能不能配置CO
    发表于 06-21 08:14

    软件生态上超越CUDA,究竟有多难?

    神坛的,还是围绕CUDA打造的一系列软件生态。   英伟达——CUDA的绝对统治   相信对GPU有过一定了解的都知道,英伟达的最大护城河就是CUDACUDA在后端架构上处于绝对的统
    的头像 发表于 06-20 00:09 3477次阅读

    wsl2安装的idf,在monitor时会报错的原因?

    wsl2安装的idf,使用vscode 扩展,功能一切正常,但是在 monitor 时会报下列错误 xtensa-esp32-elf-addr2line -pfiaC -e build
    发表于 06-17 07:30

    WSL2+ubuntu+vscode+esp-idf环境,刷写时选择ESP32-S3(Built-in USB JTAG)、UART模式提示报错的原因?

    系统为WIN11专业版,板子为ESP32-S3-WROOM-1,通过340C连接到RX,TX。Arduino下可以正常刷写。 在WSL2+ubuntu+vscode+esp-idf环境,编译
    发表于 06-14 06:23

    ESP32S3用WSL作为开发环境, log开启verbose有错误提示,为什么?

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

    Keil使用AC6编译提示CUDA版本过高怎么解决?

    \' ArmClang: warning: Unknown CUDA version 10.2. Assuming the latest supported version 10.1
    发表于 04-11 07:56

    微软WSL更新支持IPv6流量透过Linux

    据悉,微软近期对Windows Subsystem for Linux(WSL)进行了2.2.2版本更新,包含多项优化改进。其中最引人注目的便是新增的nft规则,允许IPv6数据包经过Linux容器传输。
    的头像 发表于 04-08 10:23 909次阅读

    深入浅出理解PagedAttention CUDA实现

    vLLM ,LLM 推理的 prefill 阶段 attention 计算使用第三方库 xformers 的优化实现,decoding 阶段 attention 计算则使用项目编译 CUDA 代码实现。
    的头像 发表于 01-09 11:43 1750次阅读
    深入浅出理解PagedAttention <b class='flag-5'>CUDA</b>实现

    什么是CUDA?谁能打破CUDA的护城河?

    在最近的一场“AI Everywhere”发布会上,Intel的CEO Pat Gelsinger炮轰Nvidia的CUDA生态护城河并不深,而且已经成为行业的众矢之的。
    的头像 发表于 12-28 10:26 1.2w次阅读
    什么是<b class='flag-5'>CUDA</b>?谁能打破<b class='flag-5'>CUDA</b>的护城河?

    OpenCV4.8 CUDA编程代码教程

    OpenCV4支持通过GPU实现CUDA加速执行,实现对OpenCV图像处理程序的加速运行,当前支持加速的模块包括如下。
    的头像 发表于 12-05 09:56 981次阅读
    OpenCV4.8 <b class='flag-5'>CUDA</b>编程代码教程

    OpenCV4.8+CUDA+扩展模块支持编译指南

    OpenCV4.8+CUDA+扩展模块支持编译指南
    的头像 发表于 11-30 16:45 910次阅读
    OpenCV4.8+<b class='flag-5'>CUDA</b>+扩展模块支持编译指南