深度学习项目部署:解析 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 环境时,合理选择镜像版本是保障项目顺利进行的关键一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】动态内存管理(C语言的难点与精华,数据结构的前置知识,你真的掌握了吗?)

文章目录 引言一、为什么要动态内存分配二、动态内存分配的相关函数2.1 malloc2.2 free2.3 calloc2.4 realloc 三、常见的动态内存的错误3.1 对NULL指针的解引用3.2 对动态内存越界访问3.3 对非动态内存释放3.4 对动态内存部分释放3.5 对动态内存多次释放3.6 未对动态内存释放&…

v-md-editor高级使用之自定义目录

​ 官方给出的目录设置参见:https://code-farmer-i.github.io/vue-markdown-editor/zh/senior/toc.html#%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE ​ 在做实际使用中往往可能需要将目录结构独立出来,经过近一天的研究终于明白其实现逻辑,并将目…

C++知识点总结(9):前缀和

一、前缀和 1. 意义 数列1520305065下标12345前缀和153565115180 2. 表示 前缀和:用数组表示,因为每一项的前缀和都能算出来。 3. 公式 值前缀和数组 a [ 1 ] a[1] a[1] s [ 1 ] s[1] s[1] s [ 1 ] a [ 2 ] s[1]a[2] s[1]a[2] s [ 2 ] s[2] s[2] …

3.qml 3D-Node类学习

Node类是在View3D 中的对象基础组件,用于表示3D空间中的对象,类似于Qt Quick 2D场景中的Item,介绍如下所示: 如上图可以看到,Node类的子类非常多,比如Model类(显示3D模型)、ParticleSystem3D粒子系统类、Li…

苹果计划将全球1/4的IPhone产能转移至印度

KlipC报道:据相关人士报道,苹果希望在未来2到3年内每年在印度生产超过5000万部iphone,要是该计划得以实现,印度将占领全球iPhone产量的四分之一。 KlipC的分析师Alex Su表示:“此次iPhone15推出是苹果印度制造计划的一…

认知能力测验,①如何破解数字推理类测试题?

校园招聘(秋招春招),最为常见的认知能力测验,在线工具网将整理分析关于认知能力测验的系列文章,希望能帮助大家顺利通过认知能力测评,找到自己心仪的工作。 数字推理测试,是我们在求职中经常会…

C# 获取Windows所有窗口句柄

写在前面 在做录屏或截屏操作时,需要获取当前正在运行中的桌面程序句柄,在网上查找资源的的时候,发现了一个工具类还不错,这边做个验证记录。 参考代码 public class WindowApi{//寻找目标进程窗口 [DllImport("USER…

【大数据】Hudi 核心知识点详解(二)

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…

商用机器人,不好用是原罪

热潮褪去后,所有的问题都汇总成一个词,不好用。 从炙手可热到“大玩具” 一款产品好用与否,更多时候人们不会关心它先进的技术、工艺、用料,也不会考虑所谓的潮流趋势或前景,只会用最朴素的直观感受告诉你&#xff0…

【Redis】Redis.conf详解

Redis.conf详解 启动的时候,就通过配置文件来启动! 工作中,一些小小的配置,可以让你脱颖而出! 单位 配置文件 unit单位 对大小写不敏感!include包含其他配置文件 就是好比我们学习Spring、Improt&#x…

讨论用于评估DREX的五种DR指标

概要 动态范围是已经使用了近一个世纪的用于评估接收机性能的参数。这里介绍五种动态有关指标的定义及测试方法,用于评估数字接收激励器(DREX,digital receiver exciters)。DREX是构成雷达的关键整部件,其瞬时带宽&am…

LeetCode经典150题Golang版.189. 轮转数组

题目 189. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转…

docker consul 容器的自动发现与注册

consul相关知识 什么是注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的…

团体程序设计天梯赛练习集(L1-016-L1-025)

L1-016 查验身份证 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,…

kafka配置多个消费者groupid kafka多个消费者消费同一个partition(java)

目录 1- 单播模式,只有一个消费者组2- 广播模式,多个消费者组3- Java实践 kafka是由Apache软件基金会开发的一个开源流处理平台。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 kafka中partition…

Git忽略已经提交的文件

原理类似于 Android修改submodule的lib包名

一文搞懂OSI参考模型与TCP/IP

OSI参考模型与TCP/IP 1. OSI参考模型1.1 概念1.2 数据传输过程 2. TCP/IP2.1 概念2.2 数据传输过程 3. 对应关系4. 例子4.1 发送数据包4.2 传输数据包4.3 接收数据包 1. OSI参考模型 1.1 概念 OSI模型(Open System Interconnection Reference Model)&a…

linux 常用脚本搜集(nginx) —— 筑梦之路

作为搜集之用 nginx acc日志分析 #!/bin/bash # 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" LOG_FILE$1 echo "…

MySQL,分组order by

一、创建分组 ## 创建分组 -- 返回每个发布会的参会人数 SELECT event_id,COUNT(*) as canjia_num FROM sign_guest GROUP BY event_id; 1、group by子句可以包含任意个列,但是但指定的所有列都是一起计算的。 group by 后2个字段一起计算的 2、group by后面可以跟…

Leetcode 剑指 Offer II 057. 存在重复元素 III

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两…