首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线程组中的线程如何协同工作?

线程组中的线程如何协同工作?
EN

Stack Overflow用户
提问于 2019-06-07 05:03:42
回答 1查看 99关注 0票数 0

在线程组的documentation中,它说:"Threads被组织成threadgroups,它们一起执行,可以共享一个公共的内存块。虽然有时内核函数被设计成线程彼此独立运行,但it's also common for threads in a threadgroup to collaborate on their working set.

到目前为止,我只在一些GPGPU程序上工作,这些程序的线程有自己的用途。谁能给我举个例子,threadgroup中的threads是如何协同工作的?他们如何使用共享内存进行协作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-09 06:58:46

线程组的问题是,它们像数据集一样在SIMD上工作。你执行一条指令,它会对多个数据元素进行操作。有一些特殊的金属指令,线程组中的线程可以将结果传递给其他线程,但这些指令只存在于MacOSX实现,而不存在于iOS。但是,使用计算着色器可以实现另一种“协同工作”。如果你想看一个高级的基于金属的大米解码器的例子,它使用一个计算着色器来操作多个输入元素,然后发出多个输出元素,看看我的大米解码器Rice decoder for Metal。这段代码基本上是逐字节操作并解压缩数据,但读取是一次4个字节,因此SIMD执行可以获得最佳性能。

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

https://stackoverflow.com/questions/56485053

复制
相关文章

相似问题

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