您好,我正在尝试使用 _Cilk_Shared 和 _Cilk_offload 将一些并行工作卸载到 MIC。
我声明了一个 Cilk 共享函数:
_Cilk_shared void somefun(int count)
在 main 我调用这个函数使用
_Cilk_offload somefun(12) ;
在这个函数中,所有东西都应该被卸载到 MIC;
我想在 somefun 中声明一个 Cilk 减速器,这样我就可以使用 cilk_for 并附加到一个 cilk 减速器列表中,
但我得到错误:
error: illegal to declare an object of a class not marked _Cilk_shared, in a _Cilk_shared context
cilk::reducer_list_append<int> rw;
我知道我可以使用 offload pragma 来做到这一点,所以我应该也可以使用 cilk shared 来做到这一点,对吧?
我找不到使用 _Cilk_shared 和 _Cilk_offload 的具体示例。
提前致谢