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

深度学习项目部署:解析 NVIDIA Docker 中的 CUDA 镜像版本:base 版本、 runtime 版本、devel 版本

近期,我不得不将深度学习项目部署到 Docker 环境中,而在这个过程中避免不了涉足 NVIDIA Docker 的坑。尽管确认其为非常实用的工具,但容器里却一片干净,什么都没有,需要一些时间去进行配置。在这篇博客中,我将详细记录在 Docker Hub 上 nvidia/cuda 镜像中,不同版本的 CUDA 镜像文件的区别。

CUDA 镜像版本概述

base 版本

这个版本从 CUDA 9.0 开始,包含了最基本的 CUDA 应用程序的预构建部署(libcudart)。如果用户希望自行安装所需的 CUDA 包,可以选择使用这个版本的镜像。然而,如果希望更加便捷,建议不要选择这个镜像版本,因为它可能会引入很多不必要的麻烦。

runtime 版本

通过添加 CUDA 工具包中的所有共享库,该版本扩展了基本镜像。如果使用了多个 CUDA 库的预构建应用程序,可以选择使用此镜像。然而,如果想要使用 CUDA 中的头文件编译自己的工程,可能会遇到找不到文件的错误。

devel 版本

通过添加编译器工具链、测试工具、头文件和静态库,该版本扩展了运行时的镜像。如果想要将 CUDA 应用程序从源代码编译,建议选择这个镜像版本。

如果希望将 Docker 镜像用作开发环境,强烈建议选择 devel 版本的镜像。

镜像使用建议

在选择 CUDA 镜像版本时,可以根据项目需求和开发环境的要求进行合理选择。以下是一些示例用法:

  • 运行一个隔离到第一个 GPU 的交互式 CUDA 会话:

    docker run -ti --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 nvidia/cuda
    
  • 查询 CUDA 7.5 编译器版本:

    docker run --rm --runtime=nvidia nvidia/cuda:7.5-devel nvcc --version
    

总结

在使用 runtime 版本的包时需要注意,它并没有 CUDA 的编译工具 nvcc。因此,在选择镜像版本时,务必根据具体需求仔细权衡,以确保 Docker 环境能够满足项目的开发和部署要求。

通过这篇博客,希望能够帮助大家更好地理解和选择适用于自己深度学习项目的 NVIDIA Docker CUDA 镜像版本。在配置 Docker 环境时,合理选择镜像版本是保障项目顺利进行的关键一步。

相关文章:

  • 基于linux系统的Tomcat+Mysql+Jdk环境搭建(二)jdk1.8 linux 上传到MobaXterm 工具的已有session里
  • 基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • 我的NPI项目之Android 安全系列 -- EMVCo
  • 从零开始搭建Go语言开发环境
  • 13.Spring 整合 Kafka + 发送系统通知 + 显示系统通知
  • 全球汽车行业的数字化转型:产品和后端的渐进之旅
  • WPF里面的Dispatcher详解
  • 记一次挖矿病毒的溯源
  • 基于ssm日用品网站设计论文
  • 深度剖析JavaScript中冒泡和捕获机制、事件代理
  • 升级Xcode15,iOS17后问题解决
  • FFmpeg的AVcodecParser
  • leetcode:457. 环形数组是否存在循环
  • 微信小程序---使用npm包安装Vant组件库
  • qemu 虚拟机
  • 深入了解以太坊
  • 收藏网友的 源程序下载网
  • 2017-09-12 前端日报
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Bootstrap JS插件Alert源码分析
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • HashMap ConcurrentHashMap
  • HashMap剖析之内部结构
  • Java 网络编程(2):UDP 的使用
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Markdown 语法简单说明
  • October CMS - 快速入门 9 Images And Galleries
  • PHP 7 修改了什么呢 -- 2
  • Promise面试题,控制异步流程
  • Redis的resp协议
  • Vue UI框架库开发介绍
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端面试之CSS3新特性
  • 使用parted解决大于2T的磁盘分区
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • #includecmath
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (06)Hive——正则表达式
  • (09)Hive——CTE 公共表达式
  • (1)STL算法之遍历容器
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)hibernate配置管理
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)Linux Shell编程——输入输出重定向
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • . NET自动找可写目录
  • .chm格式文件如何阅读
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net Remoting常用部署结构
  • .net 调用php,php 调用.net com组件 --