我需要强制Metal编译器在内核计算函数中展开一个循环。到目前为止,我已经尝试将#pragma unroll(num_times)放在for循环之前,但是编译器忽略了该语句。
似乎编译器不会自动展开循环--我比较了1)代码和for循环的执行时间2)相同的代码和手工展开的循环。手动展开的版本快了3倍。
例如:我想从这个开始:
for (int i=0; i<3; i++) {
do_stuff();
}要这样做:
do_stuff();
do_stuff();
do_stuff();在金属C++语言中有像循环展开这样的东西吗?如果是,我怎么可能让编译器知道我想要展开一个循环呢?
https://stackoverflow.com/questions/41249758
复制相似问题