通过检查 Nsight 系统中的并发和并行 Numba CUDA 代码了解性能分析。
介绍
优化是编写高性能代码的关键部分,无论你是在编写 Web 服务器还是计算流体力学模拟软件。分析功能可让你对代码做出明智的决策。从某种意义上说,没有分析功能的优化就像盲目飞行:对于拥有专业知识和敏锐直觉的经验丰富的专业人士来说,这基本上没问题,但对于几乎所有其他人来说,这都是灾难的根源。
通过检查 Nsight 系统中的并发和并行 Numba CUDA 代码了解性能分析。
优化是编写高性能代码的关键部分,无论你是在编写 Web 服务器还是计算流体力学模拟软件。分析功能可让你对代码做出明智的决策。从某种意义上说,没有分析功能的优化就像盲目飞行:对于拥有专业知识和敏锐直觉的经验丰富的专业人士来说,这基本上没问题,但对于几乎所有其他人来说,这都是灾难的根源。
本教程为 Numba CUDA 示例 第 4 部分。
本系列第 4 部分总结了使用 Python 从头开始学习 CUDA 编程的旅程
在本系列的前三部分(第 1 部分,第 2 部分,第 3 部分)中,我们介绍了 CUDA 开发的大部分基础知识,例如启动内核来执行高度并行的任务、利用共享内存执行快速缩减、将可重用逻辑封装为设备功能,以及如何使用事件和流来组织和控制内核执行。
本教程为 Numba CUDA 示例 第 3 部分。
按照本系列的第 3 部分,了解 Python CUDA 编程中的流和事件
在本系列的前两部分(第 1 部分,第 2 部分)中,我们学习了如何使用 GPU 编程执行简单的任务,例如高度并行的任务、使用共享内存的缩减以及设备功能。我们还学习了如何从主机对函数进行计时 — 以及为什么这可能不是对代码进行计时的最佳方式。
本教程为 Numba CUDA 示例 第 2 部分。
按照本系列从头开始使用 Python 学习 CUDA 编程
在本系列的第一部分中,我们讨论了如何使用 GPU 运行高度并行算法。高度并行任务是指任务完全相互独立的任务,例如对两个数组求和或应用任何元素函数。
按照本系列从头开始使用 Python 学习 CUDA 编程
GPU(图形处理单元),顾名思义,最初是为计算机图形学开发的。从那时起,它们几乎在每个需要高计算吞吐量的领域都无处不在。这一进步得益于 GPGPU(通用 GPU)接口的发展,这些接口使我们能够对 GPU 进行编程以进行通用计算。这些接口中最常见的是CUDA,其次是OpenCL,最近的是 HIP。