当前位置: 首页 > 知识库问答 >
问题:

如何充分利用OpenCL中的SIMD?

查锦程
2023-03-14

在北网的优化指南中,针对英特尔GPU的OpenCL开源实现

工作组大小应大于16,并且是16的倍数。

Gen上有两个可能的SIMD车道是8或16。为了不浪费SIMD车道,我们需要遵循这个规则。

英特尔处理器图形Gen7.5的计算架构中也提到:

对于Gen7。基于5个产品,每个EU有7个线程,总计28 KB的通用寄存器文件(GRF)。

。。。

在Gen7上。5计算架构,大多数SPMD编程模型都采用这种类型的代码生成和EU处理器执行。实际上,每个SPMD内核实例似乎都在其自己的SIMD通道内连续独立地执行。

实际上,每个线程执行一个SIMD-Width数量的内核实例

如果我理解正确,以SIMD-16 x 7 threads=112个内核实例为例,为了在一个EU上运行224个线程,工作组大小需要为16。然后OpenCL编译器将16个内核实例折叠到一个16通道SIMD线程中,并在7个工作组上执行7次,然后在单个EU上运行它们?

问题1:我到这里为止是正确的吗?

但是OpenCL规范也提供矢量数据类型。因此,通过传统的SIMD编程(如NEON和SSE)充分利用欧盟的SIMD-16计算资源是可行的。

问题2:如果是这种情况,使用vent-16数据类型已经显式使用了SIMD-16资源,因此删除了每个工作组至少16项的限制。是这样吗?

问题3:如果以上都是真的,那么这两种方法如何比较:1)OpenCL编译器将112个线程折叠成7个SIMD-16线程;2) 编码为显式使用vector-16数据类型和SIMD-16操作的7个本机线程

共有1个答案

姜振濂
2023-03-14

>

  • 几乎。您正在假设每个工作组有一个线程(N. B.线程在这种情况下是CUDA所说的“波”。在Intel GPU中,工作项是GPU线程的SIMD通道)。如果没有子组,就无法强制工作组大小完全是一个线程。例如,如果您选择16的WG大小,编译器仍然可以自由编译SIMD8并将其分布在两个SIMD8线程之间。请记住,编译器在知道WG大小之前选择SIMD宽度(clCompileProgramclEnqueueNDRange之前)。子组扩展可能允许您强制使用SIMD宽度,但绝对不会在GEN7.5上实现。

    OpenCL向量类型是在已经自动发生的隐式向量化之上的可选显式向量化步骤。例如,您是否使用flat16。每个工作项将每个处理16个浮点数,但编译器仍将至少编译SIMD8。因此,每个GPU线程都将处理(8*16)浮点数(尽管是并行的)。这可能有点矫枉过正。理想情况下,我们不希望通过使用显式OpenCL向量类型来显式向量化我们的CL。但有时如果内核做得不够多(内核太短可能会很糟糕),这可能会很有帮助。它在某个地方说flat4是一个很好的经验法则。

    我想你是指112个工作项?本地线程是指CPU线程还是GPU线程?

    • 如果您指的是CPU线程,那么关于GPU的常见参数也适用。如果您的程序没有太大差异(所有实例都采用类似的路径),并且您使用数据的次数足够多,以减少向GPU传输数据和从GPU传输数据的成本(算术密度),那么GPU就很好了

  •  类似资料:
    • 有多台笔记本电脑,手机,如何统合这些计算资源? 比如我在一台电脑上安装QQ这个软件 另一台电脑上不需要再安装这个软件 也可以使用QQ这个程序也就是说同样的资源是需要在一台电脑上即可 (我尝试过网络存储,但是效果不太好,首先太慢了,其次需要把每台电脑灯配置成服务器) 另外一个要求 对于一个计算任务把它分配给不同电脑上的CPU进行计算 顺便问一下企业是如何实现多个CPU资源充分利用

    • 问题内容: 我维护一个定制的类似CMS的应用程序。 每当提交文档时,都会执行一些任务,这些任务可以大致分为以下几类: MySQL查询。 HTML内容解析。 搜索索引更新。 类别1包括对与文档内容有关的各种MySQL表的更新。 类别2包括对存储在MySQL LONGTEXT字段中的HTML内容的解析,以执行一些自动锚标记转换。我怀疑此任务花费了大量计算时间。 类别3仅使用与文档相对应的几个字段就对基

    • 出于实验/学习目的(假设我的应用程序有很多持久/并发流量),我有一个运行docker的虚拟机。对于docker,我有以下设置: 所有东西都有自己的容器,并与端口通信。我试图模拟两个不同的服务器(Nginx),通过HAProxy实现负载平衡。 现在它工作得很好,但是据我所知,节点仍然只在单线程中运行。 Nginx包含的唯一配置是作为节点的反向代理(其他所有配置都是默认配置)。每个Nginx服务器只处

    • 了解如何充分利用 Photoshop 内置的全面搜索体验. Photoshop 具有强大的搜索功能,您可以在用户界面元素、文档、帮助和学习内容、振奋人心的 Stock 资源中进行搜索,更重要的是,您可以使用统一的对话框完成搜索。启动 Photoshop 之后或者打开一个或多个文档时,您就可以立即搜索项目。应用程序内搜索体验还允许您在 Photoshop 中查找、过滤、排序和导入 Lightroom

    • 我正在运行大型模型(774M)的GPT-2代码。它用于通过交互式_条件_样本生成文本样本。林克:这里 因此,我给出了一个输入文件,其中包含自动选择生成输出的提示。此输出也会自动复制到文件中。简而言之,我不是在训练它,而是在使用模型生成文本。而且,我使用的是一个GPU。 我在这方面面临的问题是,代码没有充分利用GPU。 通过使用NVIDIASMI命令,我可以看到下图 https://imgur.co