gpt4 book ai didi

opencl - 根据 OpenCL 中的设备内存确定最大全局工作组大小?

转载 作者:行者123 更新时间:2023-12-04 14:13:07 25 4
gpt4 key购买 nike

我可以列出以下参数,这些参数有助于根据设备内存限制设备的工作项:

  • CL_DEVICE_GLOBAL_MEM_SIZE
  • CL_DEVICE_LOCAL_MEM_SIZE
  • CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE
  • CL_DEVICE_MAX_MEM_ALLOC_SIZE
  • CL_DEVICE_MAX_WORK_GROUP_SIZE
  • CL_DEVICE_MAX_WORK_ITEM_SIZES
  • CL_KERNEL_WORK_GROUP_SIZE

  • 我找到 explanation由于这些参数不足,因此我无法正确使用这些参数。
    有人可以告诉我这些参数的含义以及它们是如何使用的。
    是否有必要检查所有这些参数?

    PS:我对一些参数有一些简单的了解,但我不确定我的理解是否正确。

    最佳答案

    CL_DEVICE_GLOBAL_MEM_SIZE:

  • 设备的全局内存量。您通常不在乎,除非您使用大量数据。无论如何,如果您使用超过允许的范围,OpenCL 规范将提示 OUT_OF_RESOURCES 错误。 (字节)

  • CL_DEVICE_LOCAL_MEM_SIZE:
  • 每个工作组的本地内存量。但是,这个限制只是在理想条件下。如果您的内核在每个 WG 中使用大量 WI,则可能某些私有(private) WI 数据会溢出到本地内存中。因此,将其作为每个 WG 的最大可用数量。

  • CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:
  • 单个内核可以使用的最大常量内存量。如果您使用的常量缓冲区加起来都超过了这个数量,要么它会失败,要么使用全局普通内存(因此它可能会更慢)。 (字节)

  • CL_DEVICE_MAX_MEM_ALLOC_SIZE:
  • 您可以在设备中分配的 1 个单件中的最大内存量。 (字节)

  • CL_DEVICE_MAX_WORK_GROUP_SIZE:
  • 设备的最大工作组大小。这是理想的最大值。根据内核代码,限制可能会更低。

  • CL_DEVICE_MAX_WORK_ITEM_SIZES:
  • 每个维度的最大工作项数量。 IE:该设备可能具有 1024 WI 作为最大尺寸和 3 个最大尺寸。但是您可能无法使用 (1024,1,1) 作为大小,因为它可能仅限于 (64,64,64),因此,例如,您只能使用 (64,2,8)。

  • CL_KERNEL_WORK_GROUP_SIZE:
  • 实现给出的默认内核大小。它可能被迫更高或更低,但已经提供的值应该已经是一个很好的值(GPU 使用百分比的良好权衡,内存溢出等)。

  • 注意:所有这些数据都是理论限制。但是如果您的内核使用的资源比其他资源多,即:本地内存取决于工作组的大小,您可能无法达到每个工作组的最大工作项,因为您可能首先达到本地内存限制.

    关于opencl - 根据 OpenCL 中的设备内存确定最大全局工作组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23017005/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com