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

相关推荐

  1. Opencv cuda版本编译

    2023-12-17 00:50:03       7 阅读
  2. npm版本号管理与特殊版本标签深度解析

    2023-12-17 00:50:03       20 阅读
  3. Linux 服务器 CUDA版本

    2023-12-17 00:50:03       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 00:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 00:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 00:50:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 00:50:03       20 阅读

热门阅读

  1. (第38天)RAC 修改 IP 信息

    2023-12-17 00:50:03       38 阅读
  2. 前端(二)

    2023-12-17 00:50:03       32 阅读
  3. 使用Python实现蒙特卡罗算法

    2023-12-17 00:50:03       37 阅读
  4. C#基础——面向对象(封装 继承 多态)

    2023-12-17 00:50:03       45 阅读
  5. ca-certificates.crt解析加载到nssdb中

    2023-12-17 00:50:03       40 阅读
  6. Go中的工作池:并发任务的优雅管理

    2023-12-17 00:50:03       36 阅读
  7. 快速学习C++中的模板

    2023-12-17 00:50:03       35 阅读
  8. [笔记] wsl2 下使用 qemu/grub 模拟系统启动(多分区)

    2023-12-17 00:50:03       38 阅读
  9. 来聊聊CAS

    2023-12-17 00:50:03       40 阅读
  10. Linux 中定时任务

    2023-12-17 00:50:03       38 阅读
  11. C语言第五十二弹--模拟使用strncat

    2023-12-17 00:50:03       32 阅读