【并行计算-CUDA开发】#pragma unroll伪编译指令的使用
来源:互联网 发布:巨星知我心 by凌豹姿 编辑:程序博客网 时间:2024/05/18 15:28
#pragma宏命令主要是改变编译器的编译行为,其他的参数网上资料比较多,我只想简单说下#pragma unroll的用法,因为网上的资料比较少,而且说的比较笼统,请看下面的一段代码
int main()
{
int a[100];
#pragma unroll 4
for(int i=0;i<100;i++)
{
a[i]=i;
}
return 0;
}
循环是一个程序运行时间的主要展现形式,通过使用#pragma unroll命令,编译器在进行编译时,遇到该命令就会对循环进行展开,比如对一些循环次数比较少的循环
for(int i=0;i<4;i++)
cout<<"hello world"<<endl;
可以展开为
cout<<"hello world"<<endl;
cout<<"hello world"<<endl;
cout<<"hello world"<<endl;
cout<<"hello world"<<endl;
这样程序的运行效率会更好,当然,现在大多数编译器都会自动这样优化,而通过使用#pragma unroll命令就可以控制编译器的对循环的展开程度。还是回到最开始那个程序,他的循环展开形式为:
for(int i=0;i<100;i+=4)
{
a[i]=i;
a[i+1]=i+1;
a[i+2]=i+2;
a[i+3]=i+3;
}
0 0
- 【并行计算-CUDA开发】#pragma unroll伪编译指令的使用
- #pragma unroll的用法
- #pragma unroll的用法
- #pragma unroll的用法
- #pragma unroll的用法
- pragma UNROLL的用法
- #pragma unroll的用法
- #pragma编译指令的使用
- 【并行计算-CUDA开发】__syncthreads的理解
- CUDA的并行计算
- 使用伪指令#pragma pack
- 使用伪指令#pragma pack
- #pragma unroll
- 【并行计算-CUDA开发】CUDA ---- Warp解析
- 【并行计算-CUDA开发】CUDA存储器模型
- 【并行计算-CUDA开发】CUDA并行存储模型
- CUDA: GPU的并行计算
- 【C/C++开发】C++编译指令#pragma pack的配对使用
- 关于广播接收者与服务
- PHP ajax传值给后台
- [leetcode]11. Container With Most Water
- 工具 | Tmux 命令备忘
- 博客旅程之始
- 【并行计算-CUDA开发】#pragma unroll伪编译指令的使用
- 415. Add Strings
- Linux设备模型——设备驱动模型和sysfs文件系统解读
- Eclipse安装Pydev插件
- 轻量级富文本(待优化)
- CodeForces 724E(Goods transportation 最小割)
- 经典C语言编程 冒泡排序
- 日常潜水-20161013-以管理员身份运行cmd
- Leetcode刷题记——13. Roman to Integer(罗马数字转换阿拉伯数字)