Jian's Note
It's better to burn out than fade away!
第5章 共享内存和常量内存 了解数据在共享内存中是如何被安排的 掌握从二维共享内存到线性全局内存的索引转换 解决不同访问模式中存储体中的冲突 在共享内存中缓存数据以减少对全局内存的访问 使用共享内存避免非合并全局内存的访问 理解常量缓存和只读缓存之间的差异 使用线程束洗牌指令编程 5.1 CUDA共享内存概述 GPU中有两种
CH04 全局内存 4.1 CUDA内存模型概述 在现有的硬件存储子系统下, 必须依靠内存模型获得最佳的延迟和带宽。 CUDA内存模结合了主机和设备的内存系统, 展现了完整的内存层次结构, 使你能显式地控制数据布以优化性能.s 4.1.1 内存层次结构的优点 两种不同类型的局部性: 时间局部性:时间局部性认为如果一个数据位置被引用, 那么该数
CH03 CUDA执行模型 3.1 CUDA执行模型概述 CUDA执行模型能够提供有助于在指令吞吐量和内存访问方面编写高效代码的见解 3.1.1 GPU架构概述 GPU架构是围绕一个流式多处理器(SM) (Stream Multiprocessor)的可扩展阵列搭建的,可以通过复制这种架构的构建块来实现GPU的硬件并行 Fermi SM的关键组件: CUDA核
CH02 CUDA编程模型 2.1 CUDA编程模型概述 CUDA编程模型提供了一个计算机架构抽象作为应用程序和其可用硬件之间的桥梁。 CUDA编程模型还利用GPU架构的计算能力提供了以下几个特有功能: 一种通过层次结构在GPU中组织线程的方法(2.3) 一种通过层次结构在GPU中访问内存的方法(4.5) 程序员可以通过以下
Ch01 基于CUDA的异构并行计算 1.1 并行计算 并行计算通常设计两个不同的计算机领域 计算机架构(硬件):在结构级别上支持并行性 并行程序设计(软件):充分使用计算机架构的计算能力来并发地解决问题 1.1.1 串行编程和并行编程 1.1.2 并行性 并行性方式 任务并行: 当许多任务或函数可以独立地、大规模地并行执行时,这就是任务并行。任务并
quote
note abstract info tip success question warning failure danger bug example quote
Overview c++ 八股文 第一部分 1. 基础知识(一) 1.1 C++语言的特点 ①C++在C的基础上引入了面向对象机制,同时也兼容C语言; ②C++三大特性:封装、继承、多态; ③C++程序结构清晰、易于扩充、程序可读性好; ④C++代码质量高,运行效率高、仅比汇编语言慢10%~20%; ⑥C++可复用性高,C++引入了模板的概念,有
0 摘要 Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。 本系列将通过源码分析来带领大家了解 Horovod。本文是系列第四篇,看看如何获取 host 之间的路由等网络信息。 1 引子 在 horovod/runner/launch.py 文件中,_run_static 函数中使用 driver_service.get_common_interfaces 来获取路由信息等。 1 2 3 def _run_static(args): nics = driver_service.get_common_interfaces(settings, all_host_names, remote_host_names, fn_cache) 因为这部
references: [1]. https://www.cnblogs.com/rossiXYZ/p/14881812.html 0 摘要 Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。 本系列将通过源码分析来带领大家了解 Horovod。本文是系列第三篇,从 python 开始进入 Horovod 世界,看看 Horovodrun 做了什么。 前两篇链接如下: 深度学习分布式训练框架 Horovod (1) — 基础知识 深度学习分布式训练框架 horovod (2) — 从使用者角度切