CUDA性能概述:影响因素及优化方法
性能分析依据Roofline 模型,该模型根据算术强度(AI)划分两种性能区间(以A100为例): 内存受限(Memory-bound):当AI低于13 FLOPs/Byte时,性能由内存带宽决定。 计算受限(Compute-bound):当AI高于13 FLOPs/Byte时,性能由计算能力决定。 1. 性能影响及优化分类 1.1. 内存优化 global mem...
性能分析依据Roofline 模型,该模型根据算术强度(AI)划分两种性能区间(以A100为例): 内存受限(Memory-bound):当AI低于13 FLOPs/Byte时,性能由内存带宽决定。 计算受限(Compute-bound):当AI高于13 FLOPs/Byte时,性能由计算能力决定。 1. 性能影响及优化分类 1.1. 内存优化 global mem...
1. 硬件结构 英伟达CUDA/GPU架构演变,以及不同架构的硬件能力: 硬件层次结构如下(以Fermi架构为例): 一个GPU中包含若干个SM(Streaming Multiprocessor,流多处理器),对应上图中左边; 一个SM中包含32个CUDA Core(也叫SP),对应上图中右边; 一个CUDA Core中包含一个ALU,一个FPU。 有些SM中...
主要概念: 引用的本质在C++内部实现是一个常指针。 左值引用,右值引用。右值引用限制了其只能接收右值,可以利用这个特性从而提供重载。 template 万能引用,引用折叠。 完美转发:std::forward 。 完美转发 std::forward 模板的万能引用只是提供了能够接收同时接收左值引用和右值引用的能力,但是引用类型的唯一作用就是限制了接收的类型,后续使...
1. epoll 与 select/poll 区别 select由于采用轮询的方式,即轮询所有文件描述符。现实情况中,并发活跃的连接数远小于总连接数(文件描述符列表),select的效率较低。 poll与select类似,也是采用轮询的方式,但是poll没有最大文件描列表长度述符限制(默认是FD_SETSIZE = 1024)。 例如,poll函数使用pollfd数组来查询事...
记录 Jekyll Chirpy 主题从部署错误修复到功能优化的完整过程,包括 GitHub Actions 配置、数学公式渲染、目录展开等改进。
搭建和使用本网页时找到或参考的各类指南和文档
qemu&kvm学习笔记 qemu笔记 Qemu KVM(Kernel Virtual Machine)学习笔记
reference Memory Segmentation Cheet Sheets
1. 介绍 使用C++ 17的多态内存管理器(PMR),可以实现一个简单的内存池。根据选择(std::pmr::memory_resource),可以在内存不够的时候,向upstream申请内存。 标准内存资源列表: memory_resource派生类 效率 线程安全 内存 ...
1. overload 重载 同名函数,参数个数或类型不同; 相同作用域,即同一个类。 2. override 覆盖 不在一个作用域,即父类与子类; 子类函数与基类函数同名,参数个数和类型相同; 基类使用virtual关键字,子类使用override关键字。 例外的一个点是协变:基类返回基类指针,子类返回子类指针。此时也是override。 #inclu...