
性能分析
文章平均质量分 51
xll_bit
这个作者很懒,什么都没留下…
展开
-
【CUDA】Memory Coalescing(内存合并)
内存合并的基础是DRAM Burst。mei当我们从全局内存搬运数据到共享内存或者寄存器时,原创 2021-06-08 16:15:13 · 2237 阅读 · 3 评论 -
【CUDA-C/C++】任意维度矩阵乘
前面已经写过了利用Fortran实现任意维度矩阵乘的CUDA实现,详见:https://blog.youkuaiyun.com/xll_bit/article/details/117551476?spm=1001.2014.3001.5501,今天更新一个原创 2021-06-08 14:32:46 · 573 阅读 · 0 评论 -
【openMP】single (主从模式)
omp single指定在当前的并行域里当前代码块只被执行一次(任意线程均可)用法: #pragma omp single[clause,clause, ...] 参数: clause Can be one or more of the following clauses: copyprivate(list) Provides a mechanism to use a privat..原创 2020-10-21 14:34:15 · 3094 阅读 · 0 评论 -
【OpenMP】flush(主从模式)
常规对flush制导语句的解释为:用以标记一个同步点,用以确保所有的线程看到一致的存储器视图。这样的解释对一般人来讲很难理解,其实它的功能就是强制刷新每个线程的临时视图,使其和内存视图保持一致,即:使线程中缓存的变量值和内存中的变量值保持一致。一般在使用OpenMP的时候也很少遇到flush语句。这是因为flush在下面几种情况下会隐含运行(nowait子句除外):Barriercritical:进入与退出部分ordered:进入与退出部分parallel:退出部分for:退出部...原创 2020-09-29 21:45:38 · 1492 阅读 · 2 评论 -
【C++】 函数返回vector
当程序中要返回vector时,一般做法会将函数直接定义为:vector<T> func(){ //TODO}而为了提高执行效率,可以直接返回该vector的引用,这样会减少vector的多次拷贝。具体写法如下:vector<T>& func(){ //TODO}但要注意的是,该要返回的vector不能是函数内部的局部变量。...原创 2020-03-04 15:52:30 · 20904 阅读 · 1 评论 -
【C++】程序性能分析及可视化
一,性能分析工具的使用(gprof)编译需要加-pg选项 运行可执行文件,会自动生成生成gmon.out 文件,命令格式如下: ./a.out #a.out指可执行文件 使用gprof生成性能分析结果,命令格式如下:gprof ./a.out gmon.out >out.log//命令中 a.out为可执行文件;gmon.out为第二步自动生成的结果;ou...原创 2019-11-29 14:20:11 · 2222 阅读 · 0 评论