当前位置: 首页 > news >正文

类似网站的建设wordpress 修改主题名

类似网站的建设,wordpress 修改主题名,做a暧小视频在线观看网站,网件路由器怎么样概述 nvidia-docker 和 nvidia-container-runtime 是用于在 NVIDIA GPU 上运行 Docker 容器的两个相关工具。它们的作用是提供 Docker 容器与 GPU 加速硬件的集成支持#xff0c;使容器中的应用程序能够充分利用 GPU 资源。 nvidia-docker 为了提高 Nvidia GPU 在 docker 中的…概述 nvidia-docker 和 nvidia-container-runtime 是用于在 NVIDIA GPU 上运行 Docker 容器的两个相关工具。它们的作用是提供 Docker 容器与 GPU 加速硬件的集成支持使容器中的应用程序能够充分利用 GPU 资源。 nvidia-docker 为了提高 Nvidia GPU 在 docker 中的易用性 Nvidia 通过对原生 docker 的封装提供了 nvidia-docker 工具 nvidia-docker 是一个 Docker 插件用于在 Docker 容器中启用 NVIDIA GPU 支持。 该工具提供了一个命令行界面允许在运行容器时通过简单的命令来指定容器是否应该访问主机上的 NVIDIA GPU 资源。 当在容器中运行需要 GPU 加速的应用程序时可以使用 nvidia-docker 来确保容器能够访问 GPU。 # 示例命令 nvidia-docker run -it --rm nvidia/cuda:11.0-base nvidia-smi上述命令使用 nvidia-docker 在容器中运行 NVIDIA 的 CUDA 基础镜像并在容器中执行 nvidia-smi 命令以查看 GPU 信息 nvidia-container-runtime nvidia-container-runtime 是 NVIDIA 的容器运行时它与 Docker 和其他容器运行时如 containerd集成以便容器可以透明地访问 NVIDIA GPU 资源。 与 nvidia-docker 不同nvidia-container-runtime 不是 Docker 插件而是一种更通用的容器运行时可与多个容器管理工具集成。 nvidia-docker 和 nvidia-container-runtime 都是用于使 Docker 容器能够访问 NVIDIA GPU 资源的工具。可以根据自己的需求选择其中一个来配置容器以利用 GPU 加速。 需要注意的是最新的 NVIDIA Docker 支持通常建议使用 nvidia-container-runtime因为它提供了更灵活和通用的 GPU 支持而不仅仅是为 Docker 定制的解决方案。 # 示例命令 docker run --runtimenvidia -it --rm nvidia/cuda:11.0-base nvidia-smi上述命令使用 Docker 运行容器通过 --runtimenvidia 参数指定使用 nvidia-container-runtime 运行时并在容器中执行 nvidia-smi 命令。 原生 docker 通过设备挂载和磁盘挂载的方式支持访问 GPU 资源 docker 本身并不原生支持 GPU但使用 docker 的现有功能可以对 GPU 的使用进行支持 # 示例命令 docker run \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ -v /usr/local/nvidia:/usr/local/nvidia \ -it --privileged nvidia/cuda通过 --device 来指定挂载的 GPU 设备通过 -v 来将宿主机上的 nvidia gpu 的命令行工具和相关的依赖库挂载到容器。这样在容器中就可以看到和使用宿主机上的 GPU 设备了。 注意这种方式对于 GPU 的可用性哪些 GPU 是空闲的等需要人为的判断效率很低 nvidia-docker 详解 结构图及各组件说明 nvidia-docker 对于使用 GPU 资源的 docker 容器支持的层次关系 Nvidia-docker的原理图以及各个部分的作用解析 **libnvidia-container**提供了一个库和简单的 CLI 工具以实现在容器当中支持使用 GPU 设备的目标。 nvidia-container-toolkit 是一个实现了 runC 的 prestart hook 接口的脚本该脚本在 runC 创建一个容器之后启动该容器之前调用其主要作用就是修改与容器相关联的 config.json注入一些在容器中使用 NVIDIA GPU 设备所需要的一些信息比如需要挂载哪些 GPU 设备到容器当中。 nvidia-container-runtime 主要用于将容器 runC spec 作为输入然后将 nvidia-container-toolkit 脚本作为一个 prestart hook 加入到 runC spec 中再用修改后的 runC spec 调 runc 的 Exec 接口运行容器。 所以在容器启动之前会调用 pre-start hooknvidia-container-toolkit这个 hook 会通过 nvidia-container-cli 文件来调用libnvidia-container 库最终映射挂载宿主机上的 GPU 设备、nvid 驱动的 so 文件、可执行文件到容器内部。 nvidia-container-runtime 才是真正的核心部分它在原有的 docker 容器运行时 runc 的基础上增加一个 prestart hook用于调用 libnvidia-container 库 RunC RunC 是一个轻量级的工具它是用来运行容器的只用来做这一件事。 可以认为它就是个命令行小工具可以不用通过 docker 引擎直接运行容器。也是 docker 默认的容器运行方式。 事实上runC 是标准化的产物它根据 OCI 标准来创建和运行容器。而 OCIOpen Container Initiative组织旨在围绕容器格式和运行时制定一个开放的工业化标准。 直接使用 RunC 的命令行即可以完成创建一个容器并提供了简单的交互能力。 容器创建过程 创建一个正常容器不支持 GPU的流程 docker -- dockerd -- containerd– containerd-shim --runc -- container-processdocker 客户端将创建容器的请求发送给 dockerd当 dockerd 收到请求任务之后将请求发送给 containerdcontainerd 经过查看校验启动 containerd-shim 或者自己来启动容器进程。 创建一个支持 GPU 的容器的流程 docker– dockerd -- containerd -- containerd-shim– nvidia-container-runtime -- nvidia-container-runtime-hook -- libnvidia-container -- runc – container-process基本流程和不支持 GPU 的容器差不多只是把 docker 默认的运行时替换成了 NVIDIA 封装的 nvidia-container-runtime 这样当 nvidia-container-runtime 创建容器时先执行 nvidia-container-runtime-hook这个 hook 去检查容器是否需要使用GPU通过环境变 NVIDIA_VISIBLE_DEVICES 来判断)。如果需要则调用 libnvidia-container 来暴露 GPU 给容器使用。否则走默认的 runc 逻辑。 NVIDIA Docker 整体工作架构 软硬件基础 硬件服务器上安装了英伟达 GPU 宿主机安装了操作系统和 Cuda Driver以及 Docker 引擎 容器包含容器 OS 用户空间Cuda Toolkit以及用户应用程序 注意 宿主机上需要安装 cuda driver容器内需要安装 cuda toolkit。容器内无需安装 cuda driverNVIDIA 提供了一些官方镜像其中已经安装好了 cuda toolkit但还是需要在宿主机安装 cuda driver。 API 结构 NVIDIA 提供了三层 API CUDA Driver API GPU 设备的抽象层通过提供一系列接口来操作 GPU 设备性能最好但编程难度高一般不会使用该方式开发应用程序 CUDA Runtime API 对 CUDA Driver API 进行了一定的封装调用该类 API 可简化编程过程降低开发难度 CUDA Libraries 是对 CUDA Runtime API 更高一层的封装通常是一些成熟的高效函数库开发者也可以自己封装一些函数库便于使用 CUDA 结构图如下 CUDA 调用关系 应用程序可调用 CUDA Libraries 或者 CUDA Runtime API 来实现功能当调用 CUDA Libraries 时CUDA Libraries 会调用相应的 CUDA Runtime APICUDA Runtime API 再调用 CUDA Driver APICUDA Driver API 再操作 GPU 设备。 CUDA 的容器化 目标让应用程序可以在容器内调用 CUDA API 来操作 GPU 因此需要实现 在容器内应用程序可调用 CUDA Runtime API 和 CUDA Libraries 在容器内能使用 CUDA Driver 相关库。因为 CUDA Runtime API 其实就是 CUDA Driver API 的封装底层还是要调用到 CUDA Driver API 在容器内可操作 GPU 设备 因此容器中访问 GPU 资源过程为 要在容器内操作 GPU 设备需要将 GPU 设备挂载到容器里 Docker 可通过 --device 挂载需要操作的设备或者直接使用特权模式不推荐。 NVIDIA Docker 是通过注入一个 prestart 的 hook 到容器中在容器自定义命令启动前就将GPU设备挂载到容器中。 至于要挂载哪些GPU可通过 NVIDIA_VISIBLE_DEVICES 环境变量控制。 挂载 GPU 设备到容器后还要在容器内可调用 CUDA API CUDA Runtime API 和 CUDA Libraries 通常跟应用程序一起打包到镜像里 CUDA Driver API 是在宿主机里需要将其挂载到容器里才能被使用。 NVIDIA Docker 挂载 CUDA Driver 库文件到容器的方式和挂载 GPU 设备一样都是在 runtime hook 里实现的。 注意 该方案也有一些问题即容器内的 CUDA Runtime 同宿主机的 CUDA driver 可能存在版本不兼容的问题。 CUDA Libraries 和 CUDA Runtime API 是和应用程序一起打包到镜像中的而 Driver 库是在创建容器时从宿主机挂载到容器中的需要保证 CUDA Driver 的版本不低于 CUDA Runtime 版本。 NVIDIA Docker 2.0nvidia-container-runtime 实现机制 nvidia-docker2.0 是一个简单的包它主要通过修改 docker 的配置文件 /etc/docker/daemon.json将默认的 Runtime 修改为 nvidia-container-runtime可实现将 GPU 设备CUDA Driver 库挂载到容器中。 cat /etc/docker/daemon.json {default-runtime: nvidia,runtimes: {nvidia: {path: /usr/bin/nvidia-container-runtime,runtimeArgs: []}} }Debug日志 修改 nvidia runc 的默认配置文件 /etc/nvidia-container-runtime/config.toml 打开 hook 的 debug 日志选项可以看到宿主机挂载 nvidia 驱动、设备到容器内部的详细过程。
http://www.zqtcl.cn/news/760427/

相关文章:

  • 马鞍山什么房产网站做的好网速
  • 国外做兼职网站软件园二期做网站的公司
  • 淘客网站备案教程网页设计与制作教程十四五规划
  • 哪些网站可以做外部锚文本网页设计个人简历怎么做
  • 福州网站营销北京著名网站建设公司
  • 导购网站开发 源码wordpress 获取总页数
  • 网站名查找wordpress评论人
  • 网络推广最好的网站有哪些wordpress怎么用万网域名
  • 大连仟亿科技网站建设公司 概况网络信用贷款哪个好
  • 配置了iis打不开网站外贸建站哪个最便宜
  • 酒店网站建设描述免费建站网站有哪些
  • 做宠物的网站主题思想网站建设 司法公开的需要
  • 建站图标素材前端面试题2022
  • 宁夏住房建设厅网站官网最新版cmsv6
  • 网站建设备案和免备案的区别建网站视频教程
  • 网站推广话术wordpress主题没法用
  • 微信网站开发 全屏包头教育云平台网站建设
  • 诸城手机网站建设做竞价网站
  • 网站策划报告公司简介模板范文高大上
  • 做信息图的免费网站如何获取网站是哪个公司制作
  • 乐清建设网站哪家好seo一个月赚多少钱
  • 哈尔滨专业官网建站企业h5公众号开发
  • 商城网站建设精英wordpress实例配置
  • 国内网站开发语言模板兔自用主题WordPress
  • 天津营销网站建设公司哪家好市场营销平台
  • 上海企业响应式网站建设推荐网站建设类织梦模板
  • 洛阳最好的做网站的公司哪家好信誉好的邢台做网站
  • 织梦 旅游网站模板seo百家外链网站
  • 做网站提升公司形象摄影网站建设任务书
  • wordpress建站不好用wordpress共用用户多站点