代码之家  ›  专栏  ›  技术社区  ›  mackycheese21

OpenCL多维

  •  0
  • mackycheese21  · 技术社区  · 7 年前

    所以我有一个OpenCL程序,可以打印出以下信息:

    Version ....... OpenCL 1.2 (Mar 15 2018 21:59:37)
    Vendor ........ Apple
    Profile ....... FULL_PROFILE
    Name .......... Apple
    
    GPUS: 
    
    Device #0
    Max work group size ......... 256
    Max work item dimensions .... 3
    Max work item sizes ......... 256 256 256 
    Name ........................ Intel(R) HD Graphics 630
    Platform .................... 
    Profile ..................... FULL_PROFILE
    Vendor ...................... Intel Inc.
    Version ..................... OpenCL 1.2 
    Driver version .............. 1.2(Mar 15 2018 22:04:21)
    
    Device #1
    Max work group size ......... 256
    Max work item dimensions .... 3
    Max work item sizes ......... 256 256 256 
    Name ........................ AMD Radeon Pro 560 Compute Engine
    Platform .................... 
    Profile ..................... FULL_PROFILE
    Vendor ...................... AMD
    Version ..................... OpenCL 1.2 
    Driver version .............. 1.2 (Mar 15 2018 21:59:57)
    
    CPUS: 
    
    Device #0
    Max work group size ......... 1024
    Max work item dimensions .... 3
    Max work item sizes ......... 1024 1 1 
    Name ........................ Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
    Platform .................... 
    Profile ..................... FULL_PROFILE
    Vendor ...................... Intel
    Version ..................... OpenCL 1.2 
    Driver version .............. 1.1
    

    所以问题是: 在AMD上,它有3个维度,每个维度256个。 这是否意味着它可以同时进行256^3次并行计算? 或者这信息还有其他含义吗? 同样,英特尔高清图形能否执行同样的精确计算?那他们为什么要分开卡片呢?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Dithermaster    7 年前

    是的 指定GPU可以并行完成的工作量。”马克斯工作项大小“指定A的最大大小” 工作组 在每个维度。你的是 以“最大工作组大小”为界,宽度*高度*深度不能超过该值。此外,每个内核都有一个最大的工作组大小,可以通过CLGKEKEL WorkGROMPPFILE和CLKNELL工作组GROUPLE大小查询。根据我的经验,您通常不想接近这些限制;您的内核在较小的工作组中运行得更快。除非你有什么理由需要大的工作组,只需将它们设为32或64个项(或者如果你不使用共享的本地内存,则保留默认的工作组大小(空),让运行时选择一个(但保持全局工作组大小可以很好地划分,否则你将得到次优的工作组大小)。

    您的Intel和AMD GPU是分开报告的,因为它们是分开的设备。至于苹果为什么把两个GPU放在一个盒子里,那就看他们了。通常情况下,用户可以选择速度与功耗。

    推荐文章