OpenCL class图中箭头指向buffer的含义

The meaning of arrow pointing to buffer in the OpenCL class diagram

正在研究OpenCL的大概结构

OpenCL UML Class Diagram

  1. 我想知道为什么有一个箭头从 MemObject 下面的黄油指向它自己。

    这就是我们可以使用函数 clEnqueueCopyBuffer() 将一个缓冲区对象复制到另一个缓冲区对象的原因。

    或者我们可以在 "host memory " 和 "compute device memory" 之间传递日期?

    或其他东西??

  2. OpenCL UML 中提到的 MemObject Class Diagram 表示计算设备或主机内存或两者?

    • "MemObject"之所以被"Buffer"指向,"Image"是因为"MemObject"对两者进行了抽象(继承自)。如果内核是 "Buffer" 或 "Image",大多数函数在执行复制或设置内核参数时不会关心,仅当它是 "MemObject".

      [= 时才关心23=]
    • 缓冲区可以指向自身,因为缓冲区对象可以是另一个缓冲区的子缓冲区。事实上,您可以创建无限数量的缓冲区,它们是另一个缓冲区的子缓冲区。

    • class 图引用了 API 使用的抽象对象。这些对象是驻留在主机上还是设备上与该图中无关。只有对象之间的关系。
    • 示例:一个队列只有一个上下文,但是一个上下文有 * (0...N) 个队列。