
DCU
文章平均质量分 80
cuda
走过,莫回头
这个作者很懒,什么都没留下…
展开
-
CUDA-计算内存事务的次数
而数据类型的大小会影响。原创 2025-02-15 16:14:19 · 312 阅读 · 0 评论 -
CUDA-内存访问模式
在 GPU 计算中,直接影响程序的性能,尤其是访问的。✅📌🚨🚩📌使用✅。✅:线程访问连续地址,提高全局内存带宽利用率。✅:减少不规则访问,提高数据重用。✅比快。✅:避免跨步访问全局内存。✅。原创 2025-02-15 15:17:29 · 648 阅读 · 0 评论 -
CUDA-内存事务
当 GPU 线程访问全局内存时,它不会逐个字节地读取数据,而是按照。(如 stride 访问),可以使用。,并且 GPU 内存控制器会。假设有 32 个线程的。,全局内存访问通常以。在 GPU 编程中,每次访问都会产生一个。,从而减少事务次数。在 GPU 计算中,原创 2025-02-15 15:15:42 · 538 阅读 · 0 评论 -
CUDA - 页锁内存
页锁内存是主机与设备间高效数据传输的关键技术,尤其适用于需要异步拷贝或零拷贝的 GPU 应用场景。通过合理分配和使用页锁内存,可以显著提升程序的性能,但也需要权衡其对内存资源的影响以及编程复杂性。普通分页内存的虚拟地址是连续的,但物理地址可能是分散的,导致额外的开销。使用页锁内存进行主机和设备之间的数据传输,性能比普通分页内存高,因为避免了内存分页和映射操作。页锁内存避免了操作系统的分页机制导致的额外开销,能够以更高的带宽传输数据。页锁内存为 GPU 提供了直接访问主机内存的可能,减少不必要的数据拷贝。原创 2025-01-22 11:03:13 · 1031 阅读 · 0 评论 -
CUDA的内存拷贝方式
这是最常用的同步内存拷贝函数。它在主机和设备之间同步地复制数据,直到数据传输完成,调用才会返回。根据具体的应用需求,可以选择适合的内存拷贝方式,以达到最佳性能。原创 2025-01-22 10:54:42 · 513 阅读 · 0 评论 -
lapack、blas、solver库的区别和联系
是数值计算领域的重要组成部分,它们各自的功能和设计目标有所不同,但也存在密切的联系。Solver 库是针对特定数值问题(如线性/非线性方程组、优化问题)的高级求解器,内部可能调用 BLAS 和 LAPACK。原创 2024-11-29 19:24:56 · 1134 阅读 · 0 评论 -
全局内存优化为共享内存
优化全局内存为共享内存的场景通常出现在数据访问频繁、线程需要共享数据的情况下。如果某段数据会被同一个线程块内的多个线程频繁访问,可以先将数据加载到共享内存,再由各线程读取共享内存。这可以显著减少对全局内存的访问次数。如果全局内存访问模式较为复杂,例如跨线程访问的地址不连续,可以先将数据加载到共享内存,重组为对齐访问模式。当线程块内对某些数据需要频繁执行计算或变换时,可以先将数据加载到共享内存中,然后在共享内存中执行计算。如果同一数据在多个线程中被多次加载,可以通过共享内存缓存数据,避免重复访问全局内存。原创 2024-11-25 17:47:20 · 1000 阅读 · 0 评论 -
cuda共享内存
【代码】cuda共享内存。原创 2024-11-21 18:37:31 · 1058 阅读 · 0 评论 -
PTX 汇编代码语法
PTX 汇编是一种与硬件无关的指令集,设计用于编写高度并行的程序。PTX 汇编为 CUDA 编程提供了底层的控制,允许开发者在设备上执行高效的并行计算。操作类型、操作符和数据类型。基本的内存加载、存储和算术运算。线程同步与内存屏障指令。条件执行与分支指令。通过掌握这些语法和指令,可以更深入地优化 GPU程序,并理解 CUDA 程序背后的汇编执行过程。原创 2024-10-15 16:04:52 · 6759 阅读 · 0 评论 -
mpi和openmp的区别
MPI更适合于大规模的分布式计算环境,需要在不同节点之间进行通信。OpenMP更适合于多核共享内存系统,简化了多线程编程。有时,两者可以结合使用:在一个大型计算集群中,可能使用 MPI 在节点间进行通信,同时在每个节点内部使用 OpenMP 来利用多核处理器。原创 2024-08-15 16:21:48 · 836 阅读 · 0 评论 -
RCCL了解
RCCL 是 AMD 提供的一个专为其 GPU 优化的集体通信库,旨在提升大规模并行计算的通信效率。它与 ROCm 平台集成,支持多种集体通信操作,适用于 HPC、深度学习和科学计算等领域。原创 2024-08-16 19:10:42 · 1118 阅读 · 0 评论 -
Cray toolchain了解
Cray Toolchain 是一组用于在 Cray HPC 系统上开发、调试和优化应用程序的工具。这些工具包括编译器、调试器、性能分析器和数学库,并且与 Cray 系统的硬件和软件环境高度集成。使用 Cray Toolchain,可以更有效地开发和优化在 Cray HPC 系统上运行的高性能计算应用。原创 2024-08-16 19:09:23 · 447 阅读 · 0 评论 -
mpiexec.hydra和mpirun区别
是基于 Hydra 进程管理器的工具,通常与 Intel MPI 或其他 MPI 实现中的 Hydra 进程管理框架配合使用。mpirun是一个通用的 MPI 启动工具,支持多种 MPI 实现,具体功能和选项取决于所使用的 MPI 实现,如 OpenMPI。在使用时,选择哪个工具取决于你使用的 MPI 实现和你需要的功能。原创 2024-08-16 19:07:21 · 851 阅读 · 0 评论 -
Cuda GEMM优化
所以如果我把矩阵A和B都搬运到on-chip的SMEM上,然后采用和naive GEMM一样的计算方法,那么尽管还是会在SMEM上发生重复读数据的情况(也即总的读写次数和naive一样,只不过现在不是从global memory读取,是从SMEM上读取),可是因为带宽变大了,总体来说数据读取时间肯定减少了。 A和B对应的切块(如图中的红色和黄色块)组成一个cuda编程里的block,这里我们共有4*4 = 16个block,每个block负责计算C矩阵中大小为的部分(图中绿色块)。转载 2024-07-06 15:35:32 · 199 阅读 · 0 评论 -
DCU整体硬件架构
首先,DCU通过PCI-E总线与CPU处理器相连,它是CPU主机系统的一个硬件扩展,其存在的目的是为了对程序某些模块或者函数进行加速。虽然DCU是原硬件系统的一个扩展,接受CPU调度指挥,但是在运行程序时,它又保持相对独立性,又可以将其视为一个独立的系统。同时一个主机系统在PCI-E总线上可以插入多张DCU与CPU进行互连,这使得一台主机的算力具有可扩展性,合理的利用多DCU程序可以获得更好的加速效果。虽然线程从概念上是独立执行的,但从DCU硬件来说是64个线程一组并行执行的,即一条指令发布后,原创 2024-07-02 10:32:29 · 1460 阅读 · 0 评论