CUDA 学习(二十二)优化策略7: 自调优应用程序

Posted tiemaxiaosu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA 学习(二十二)优化策略7: 自调优应用程序相关的知识,希望对你有一定的参考价值。

一、概述

       考虑如下一些主要的因素:(1)主机到GPU 的数据传入/ 传出;(2)内存合并;(3)启动配置;(4)理论上和实际的占有率;(5)缓存利用率;(6)共享内存使用率以及冲突;(7)分支;(8)指令级并行;(9)设备计算能力;


二、识别硬件

         在任何优化过程中的第一步都要知道什么硬件是可用的以及它是什么。


三、设备利用

        在确定我们拥有什么样的硬件后,必须利用它。在许多情况下,启动配置是影响性能的主要因素。第一部分是确保在生成的过程中建立了多个目标,并为打算支持的每个计算能力建立一个目标。根据内核运行在哪个GPU 上,会自动选择目标代码。同时确保运行任何性能测试前,选择了发布模式作为生成的目标,这可以提供多达2倍的性能提升。根据启动配置,我们要尽量优化以下方面:每个块的线程数、全部的块数量、每个线程执行的任务(指令级并行)。


四、性能采样

       自调优程序的最后一部分是采样。根据其特点,设置最适合的启动配置,每个显卡都将有一个峰值。不同的显卡有不同的设置。费米显卡的每个线程适合有192或256 个线程,然而之前的GPU 适合于设置每个块128和192个线程。






以上是关于CUDA 学习(二十二)优化策略7: 自调优应用程序的主要内容,如果未能解决你的问题,请参考以下文章

CUDA 学习(二十)优化策略5: 算法

CUDA 学习(二十)优化策略5: 算法

CUDA 学习(二十一)优化策略6: 资源竞争

CUDA 学习(二十一)优化策略6: 资源竞争

CUDA 学习(十五)应用程序性能优化

Hive学习之路 (二十一)Hive 优化策略