CUDA 学习(二十二)、优化策略7: 自调优应用程序
来源:互联网 发布:淘宝免费模块代码 编辑:程序博客网 时间:2024/04/30 15:08
一、概述
考虑如下一些主要的因素:(1)主机到GPU 的数据传入/ 传出;(2)内存合并;(3)启动配置;(4)理论上和实际的占有率;(5)缓存利用率;(6)共享内存使用率以及冲突;(7)分支;(8)指令级并行;(9)设备计算能力;
二、识别硬件
在任何优化过程中的第一步都要知道什么硬件是可用的以及它是什么。
三、设备利用
在确定我们拥有什么样的硬件后,必须利用它。在许多情况下,启动配置是影响性能的主要因素。第一部分是确保在生成的过程中建立了多个目标,并为打算支持的每个计算能力建立一个目标。根据内核运行在哪个GPU 上,会自动选择目标代码。同时确保运行任何性能测试前,选择了发布模式作为生成的目标,这可以提供多达2倍的性能提升。根据启动配置,我们要尽量优化以下方面:每个块的线程数、全部的块数量、每个线程执行的任务(指令级并行)。
四、性能采样
自调优程序的最后一部分是采样。根据其特点,设置最适合的启动配置,每个显卡都将有一个峰值。不同的显卡有不同的设置。费米显卡的每个线程适合有192或256 个线程,然而之前的GPU 适合于设置每个块128和192个线程。
0 0
- CUDA 学习(二十二)、优化策略7: 自调优应用程序
- CUDA 学习(二十)、优化策略5: 算法
- CUDA 学习(二十一)、优化策略6: 资源竞争
- CUDA 学习(十五)、应用程序性能优化
- CUDA 学习(十七)、优化策略2:内存因素
- CUDA 学习(十八)、优化策略3:传输
- cuda优化策略
- CUDA优化策略
- CUDA优化策略
- CUDA优化策略
- CUDA优化策略概述
- CUDA学习(二)
- CUDA 学习(二)
- CUDA 学习(十二)、常量内存
- CUDA学习笔记十二
- mysql 学习记录(二十二)--mysql的应用优化
- 设计模式(二十二) 策略模式
- CUDA 学习(十六)、优化策略1:并行/串行在GPU/ CPU 上的问题分解
- java连接redis 的问题
- ORA-00000 normal, successful completion
- python导出数据demo之样式设置
- 词袋模型和空间金字塔模型
- view 事件分发机制
- CUDA 学习(二十二)、优化策略7: 自调优应用程序
- SSH的优势和劣势
- Python语言编写BP神经网络
- mysql错误
- CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法
- Complexities Table
- nodejs pm2教程
- input file控件美化
- Selenium学习16--ExcelUtil