1

我有一个内核,我在其中使用一些共享内存。我将一个自动机复制到共享内存,执行一些模式匹配,得到一些结果并退出。

退出这个内核后,我调用同一个内核并将同一个自动机复制到共享内存,但是现在将在模式匹配上测试的数据是其他的。

我想知道我是否可以让这些数据(自动机)在共享内存中,所以我的程序会更快,在第一时间将自动机复制到共享内存。

我在想是否存在任何可以从设备调用的同步函数来告诉主机内核已经完成,所以我可以从头开始再次执行内核而不清除共享内存。

任何想法?谢谢。

4

2 回答 2

3

我不认为这是可能的。共享内存数据在逻辑上与特定的线程块相关联,并且在物理上与特定的流式多处理器相关联,但线程块在物理上与特定的流式多处理器无关。

于 2013-10-04T22:19:01.990 回答
3

甚至不可能为特定内核的整个执行保留共享内存。共享内存特定于线程块,您无法预测特定块何时开始和结束其执行。当然,您可以在内核执行之间将数据保存在全局内存中,这对于这个应用程序来说可能很好。毕竟,无论如何,您都必须从全局内存中加载新数据。

于 2013-10-06T01:02:00.880 回答