首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将C ++线程构建模块(TBB)代码转换为C ++ OpnelCL [暂停]

如何将C ++线程构建模块(TBB)代码转换为C ++ OpnelCL [暂停]
EN

Stack Overflow用户
提问于 2018-12-06 07:27:28
回答 1查看 0关注 0票数 0

“线程构建模块(TBB)使您可以轻松编写并行C ++程序,这些程序可充分利用多核性能,可移植且可组合,并具有面向未来的可扩展性。”

我真的不知道如何构建或提出这个问题。如果有人希望我提供TBB代码以更清楚地描述我正在寻找的东西,那么我很乐意提供代码。

我的主要问题是TBB和OpenCL之间有什么区别?如果函数的写法不同?我仍然不理解“内核”是如何工作的。

项目目标是从顺序到TBB再到OpenCL(完成两个阶段)

如果有人可以提供帮助,我将非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 16:45:15

TBB是一种采用C ++函数对象和数据并在数据上运行它们的技术。数据存储在普通存储器中。它还有其他部分,但这是核心思想。

OpenCL采用非C ++“内核”和存储在OpenCL存储API中的数据,并在数据上运行内核,并提供了从OpenCL中获取数据的方法。

这表示异构CPU和异构内存。非C ++语言由驱动程序(从文本或SPIR-V)编译为目标指令(通常是GPU); 数据被编组到目标的内存空间(有时这是一个noop,就像在某些Intel硬件上;有时候,它会移动到GPU的内存中)并且输出。

因此,TBB中的代码“更接近”OpenCL,因为它必须支持并行数据访问,但它并不是那么接近。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档