3

设置的几个事实:

  • Thrust 并非所有操作都在原地操作。
  • 您可以将自定义分配器提供给thrust::device_vectors.

我查看thrust::systemthrust::system::cuda没有发现任何看起来像静态系统分配器的东西。我的意思是,我看不到替换推力在内部使用的分配器为异地算法分配额外内存的方法。

我也很难相信没有就地的函数使用分配器来分配给thrust::device_vectors分配器的工作内存。

问题:有thrust没有办法用用户定义的内部分配器替换内部分配器?

相关问题:

意味着推力运行不正常

自定义thrust分配器示例

4

1 回答 1

3

Thrust 的custom_temporary_allocation示例演示了如何为 Thrust 算法内部使用的临时存储构建自己的自定义分配器。该示例使用缓存方案来执行分配,但原则上您可以使用您喜欢的任何策略。

基本上,这个想法是构建一个从 CUDA 后端派生的自定义后端,专门用于自定义分配。然后,当您想在自定义分配器中使用算法时,在调用算法时将 Thrust 指向自定义后端。

请注意,此功能需要 Thrust 1.6 或更高版本。

于 2012-08-22T17:45:13.867 回答