谷歌选择RenderScript而不是OpenCL的真正原因是什么?

谷歌选择RenderScript而不是OpenCL的真正原因是什么?,opencl,renderscript,Opencl,Renderscript,这个问题的提问形式略有不同,但我想知道安卓开发者的想法,谷歌的决定背后到底是什么,而不是谷歌的官方答案是什么 OpenCL是一种开放标准,可用于各种设备,如CPU、桌面GPU、ARM处理器、FPGA和DSP。它为开发人员提供了创建高性能软件和库的便利,这些软件和库可以在所有设备上运行 RenderScript是一种更高级的语言,它主要关注媒体操作,并在CPU和GPU上运行。它适用于所有新的Android手机和平板电脑,但不适用于其他操作系统。与OpenCL的一大区别是RenderScript总是

这个问题的提问形式略有不同,但我想知道安卓开发者的想法,谷歌的决定背后到底是什么,而不是谷歌的官方答案是什么

OpenCL是一种开放标准,可用于各种设备,如CPU、桌面GPU、ARM处理器、FPGA和DSP。它为开发人员提供了创建高性能软件和库的便利,这些软件和库可以在所有设备上运行

RenderScript是一种更高级的语言,它主要关注媒体操作,并在CPU和GPU上运行。它适用于所有新的Android手机和平板电脑,但不适用于其他操作系统。与OpenCL的一大区别是RenderScript总是处理调度,而不是软件


谷歌对OpenCL的官方回答事实上是不正确的,这让OpenCL社区中的许多人感到沮丧,并在逻辑上给出了一些强烈的反应。因此,请实事求是地介绍RenderScript和OpenCL——我不希望这个问题被关闭,因为有人在胡说八道。

首先,让我们讨论一下Tim Murray对这个问题的回答

  • 他指出OpenCL/CUDA执行模型与执行模型的各种因素有关,如寄存器计数、本地内存和其他类似细节。虽然这在一定程度上是正确的,但OpenCL执行模型是专门开发的,它允许聪明的开发人员以一种仍然可以产生最大性能的方式来抽象这些差异

  • 例如:如果内核开发人员需要了解这些细节,那么为了处理微体系结构中的差异,OpenCL运行时API提供了大量信息(请注意,这里也可以检索扩展信息)

  • 向量(SIMD风格)执行的细节也不例外。大多数OpenCL实现都指导内核应该在没有显式矢量化的情况下编写——该实现将矢量化相邻工作项的执行。这也是CUDA遵循的模型(CUDA甚至不再提供向量类型,但这是另一回事)

  • 谈到工作项目的要点;确实可以将工作维度调整为特定的大小。然而在实践中,很少使用
    reqd\u work\u group\u size
    属性,除非它是某个已知维度(为了计算而不是性能)

  • 此外,的OpenCL文档明确指出

“本地工作大小也可以是空值,在这种情况下,OpenCL 实现将决定如何分解全局工作项 进入适当的工作组实例。”

这是真实的和AMD的实施

现在让我们继续讨论Stephen Hines在Android bug页面上提出的问题

  • “OpenCL不适合Android开发者的需求”——我不相信有任何形式的民意调查。我不知道斯蒂芬是从哪里得到这些无可争议的信息的。我不能对此进行辩论
  • “并积极促成平台碎片化”——谷歌的开发人员是否认为NDK不包含特定于硬件的功能?好像NDK主页上的内容还不够
  • “OpenCL不符合Android的需求/目标,因此我们不会提供支持它的谷歌设备”。如果这是真的,这些Android设备就不会附带OpenCL支持。我不能比文森特更清楚地说明这一点
“不是谷歌,而是硬件供应商为RenderScript制作了驱动程序 ARM选择在OpenCL之上构建RSC编译器,因为 他们已经选择了OpenCL

-硬件供应商没有创建驱动程序,因为 谷歌或科罗诺斯集团也问他们,他们之所以创造它们是因为 OpenGL和WebCL是其中的一些原因,也是 新桌面上的竞争。”

最后,作为一名自注册合并器(在GeForce 2上)问世以来就一直使用GPGPU的开发人员,我看不出为什么OpenCL对Android生态系统的破坏性更大,也看不出为什么它应该被优先选择

苹果拥有OpenCL的商标。谷歌与苹果竞争。 也许真的就这么简单

我们已经用Android()完成了OpenCL的工作,我们很高兴 感谢Intel、Imagination和 其他芯片制造商。谷歌很快就会好转


也许真的就这么简单。

听着,作为一个过去曾与OpenCL合作并希望看到Android支持它的人,我同情你的挫折。然而,使用堆栈溢出作为肥皂盒来发泄不满并不是正确的方式。如果你能把它修改成一个关于OpenCL和Renderscript的特定技术问题,我们可以重新打开它,但现在这看起来像是一个政治声明。我也很沮丧——但同意你对这种情况的评估。我不会在这里谈论范宁的话题。