本文备注/经验分享:
动态并行时候的, 设备端使用的stream.我们常用的stream是指Host上的, 但动态并行的时候, 因为CUDA和OpenCL相反, 设备端的流总是顺序的,也就是同一个流里面的..., 因为OpenCL和这里是反的.默认的OpenCL里的设备端流(队列), 是自然就并行的(乱序)的...., 完全不妨碍; 知道了, 有可能利用这点提升性能),但是动态并行的时候, 设备端的流则不同,首先的确也分成默认存在的流, 和需要手工创建的流.但是手工创建的流必须使用非阻塞标志创建, 理由请参考本章节...因为试图使用这些设备端的动态并行时候, 超出使用范围的API, 编译的时候都会报错.不过虽然只是简化版本的, 但对于动态并行的时候, 一般也够用了(不够用你可以考虑传统的从Host上启动kernel嘛!...和这个相反的是, OpenCL的"设备端"可以同时指GPU和CPU, 也就是可能存在OpenCL上, CPU同时要负责执行kernel, 还要负责调度的情况。
此时就很尴尬了。