【问题标题】:Dynamic Array in Metal(API)?Metal(API)中的动态数组?
【发布时间】:2015-11-02 10:53:24
【问题描述】:

我正在编写一个对象识别程序。我正在使用 Metal Api。问题是我需要数组列表或动态数组,但 Metal 中没有动态数组。有没有办法声明或实现你自己的?

【问题讨论】:

  • 不,Metal 对内存非常严格。它无法处理具有未定义内存量的东西。缓冲区可以用作半动态数组。如果您可以计算出 cpu 端数组的最大大小,只需创建一个该大小的缓冲区。更多关于为什么here

标签: swift metal


【解决方案1】:

没有办法在金属内核(着色器)内进行动态内存分配。我只是在 CPU 端定义更多缓冲区并将其传递给着色器(而不是在着色器内创建动态数组)。只需确保将要在着色器中用于中间计算的缓冲区的“存储模式”更改为“私有”即可。 “私有”模式意味着缓冲区仅在 GPU 上,CPU 无法访问它(并且可以减少开销)。

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多