Day1-GPU应用开发-基础篇-南昌.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子、电力、电源、开关、电工、电机、电工考核、电路、5g电子芯片芯片科技互联网人工智能信息通讯、互联网大数据科技感未来科技、编程、直流、电机、功率、晶体、半导体、LED、C语言、射频、数据、原件、软件

開發平行代碼:並非全部改成GPU 并行算法调整案例:求邻 neighbor 3 5 5 5 5 3 5 8 8 8 8 5 5 8 8 8 8 5 5 8 8 8 8 5 3 5 5 5 5 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 m * n 矩阵 (m+2) * (n+2) 矩阵 每个点都需要邻居数目 每个点邻居数目均=8 GPU计算性能 = 1. 有效率的数据并行算法(SIMD) + 2. 发挥GPU硬件特性 Irregular Yes No Yes No + base_addr offset atomic compaction Regular Map Affine Reduction Staging data Divergence T0 T1 T2 T3 T4 T5 T6 T7 Data In Cache line T0 T1 T2 T3 T4 T5 T6 T7 Data In AoS vs SoA pos v attr pos v attr pos v attr pos v attr pos v attr pos T0 T1 T2 T3 T4 T5 T6 T7 Data In structure v attr pos struct Object { Vector3 pos; Vector3 v; float attr0; // … }; Object objList[1024]; pos pos pos pos pos structure pos pos pos v v T0 T1 T2 T3 T4 T5 T6 T7 Data In v v v v attr attr v v attr struct Object { Vector3 pos[1024]; Vector3 v[1024]; float attr0[1024]; // … }; Object objList; 并行计算常见问题 资源抵触(Collision of resource) 关键区域的读写(Access critical region):lock, atomic 存储矛盾(Bank conflict) 分歧(Divergence) 数据结构:AoS 与 SoA 记忆体使用效率(Memory efficiency) 负载均衡(Load balancing) 通讯开销(Communication overhead) 冗余计算(Redundant computation) 数据传输:带宽 系统间(集群):透过IB网、Ethernet之网路存储 系统内:存储(机械硬盘、SSD)与内存、缓存之间 芯片间:QPI(多CPU)、PCIE、支持P2P(多GPU)? 芯片内:片上(on-chip)内存-片外(off-chip)内存 全局显存-共享显存-register-... 计算性能: 性能 = 主频 * 计算单元(ALU,Arithmetic Logic Unit)数量 CPU:64 ALUs/片、 GPU:2500 ALUs/片 资源使用率:通量(Throughput) Littles Law: Throughput(通量)= occupancy(工作量)/ latency(工作周期/延迟) 编程功力: 算法并行化程度 数据并行化程度 系统资源调度能力 数据密集型计算之性能瓶颈 串行编程=逻辑对就行 (只管理一个员工) 小规模并行编程=管理10~50员工 (简单项目管理能力) 大规模并行编程=管理成千上万员工 (复杂项目管理能力) 并行编程:计算资源管理调度问题 PDCA:Plan-Do-Check-Act 老板问:如何将软件性能提升一倍? 研发经理说: 。。。 为了得到这个结果,我们需要 增加 3~5 名工程师, 3~6个月规划 + 3~6月开发 + 3~6个月测试 项目经理说:。。。。。(有奖征答!) 老故事一则:提高计算性能 开发工具带来的效益 OpenACC/PGI ArrayFire 软件开发的平衡点 应用开发 综合考量 维护与移植成本 (含未来扩充) 学习与开发成本 (含时间因素) 最佳性能 (原生代码的效果) 硬件架构普及性 与可维护性 OpenACC快速开发/移植工具 (容易上手、跨平台、好维护) 函数库(Libraries) OpenCL SDK现有300多个免费基础函数 商用函数库:CULA、ArrayFire、Libra 完整的GPGPU应用开发 GPU/CPU 加速运算应用 C/C++ Fortran Matlab Others Debug工具、

文档评论(0)

小白兔 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档