NVIDIA 发布了 CUDA 开发环境 CUDA 11.6 的最新版本。本版本的重点是增强 CUDA 应用程序的编程模型和性能。 CUDA 继续推动 GPU 加速度的边界,并为 HPC 、可视化、 AI 、 ML 和 DL 和数据科学中的新应用奠定基础。
CUDA 11.6 有几个重要特性。这篇文章概述了关键功能:
- GSP 驱动程序架构现在默认为图灵和安培 GPU
- 新 API 允许禁用实例化图中的节点
- 完全支持 128 位整数类型
- 协作组命名空间更新
- CUDA 编译器更新
- Nsight Compute 2022.1 版本
CUDA 11.6 附带 R510 驱动程序,这是一个更新分支。 CUDA 11.6 工具包可供下载 .
GSP 驱动程序体系结构
GSP 驱动程序体系结构现在是所有列出的图灵和安培 GPU 的默认驱动程序模式。较旧的驱动程序体系结构作为后备支持。有关更多信息,请参阅 R510 驱动程序自述 。
实例化的图形节点 API 添加
我们添加了一个新的 API cudaGraphNodeSetEnabled
,以允许禁用实例化图中的节点。在此版本中,支持仅限于内核节点。相应的 API cudaGraphNodeGetEnabled
允许查询节点的启用状态。我们还添加了禁用空内核图节点启动的功能。
128 位整数支持
CUDA 11.6 包括 128 位整数(__int128)
数据类型的完整版本,包括编译器和开发工具支持。主机端编译器必须支持__int128
类型才能使用此功能。
协作组名称空间
协作组名称空间已更新为新函数,以提高命名、函数范围以及单元维度和大小的一致性。
Implicit Group/Member | Threads | Blocks |
thread_block:: |
dim_threads num_threads thread_rank thread_index |
(Not needed) |
grid_group:: |
num_threads thread_rank |
dim_blocks num_blocks block_rank block_index |
CUDA 编译器
- 在编译过程中向目标安装的 GPU 添加了
-arch=native
编译选项。这扩展了现有的-gencode=arch=compute_xx,code=sm_xx
体系结构规范 - 添加从
nvlink
创建 PTX 文件的功能
不推荐的功能
- 不推荐使用用于设备上 fork 和 join 并行的
cudaDeviceSynchronize()
,以便为具有更高性能的替换编程模型做准备。这些函数在本版本中继续工作,但这些工具会发出有关即将发生的更改的警告。 - CentOS Linux 8 已经到了生命的尽头 在 2021 年 12 月 31 日,对这个操作系统的支持现在在 CUDA 工具包中被弃用。 CentOS Linux 8 支持将在未来版本中完全取消。
额外资源
- GTC 会议:
- CUDA 新功能及更多功能 ,作者:斯蒂芬·琼斯
- 几乎毫不费力的 CUDA 图 ,作者:罗布·范德维恩加特和姚家杰
- 深入研究最新的 HPC 软件 作者:蒂姆·科斯塔
- 多 GPU 编程模型 ,作者: Jiri Kraus
- 博客帖子:
- 在 CUDA 11.5 工具包中展示新功能
- 使用 C++编译辅助工具减少应用程序生成时间
- 在动态环境中使用 CUDA 图 ,作者: Rob Van der Wijngaart
- Nsight 开发人员工具的完整概述 作者: Chaitrali Josh