Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 金属动态阵列(API)?_Swift_Metal - Fatal编程技术网

Swift 金属动态阵列(API)?

Swift 金属动态阵列(API)?,swift,metal,Swift,Metal,我正在写一个物体识别程序。我正在使用Metal Api。问题是我需要数组列表或动态数组,但Metal中没有动态数组。有什么方法可以声明一个或实现您自己的吗?没有方法在金属内核(着色器)内进行动态内存分配。我只需要在CPU端定义更多缓冲区并将其传递给着色器(而不是在着色器内部创建动态数组)。只需确保将要在着色器中用于中间计算的缓冲区的“存储模式”更改为“专用”。“专用”模式意味着缓冲区仅位于GPU上,CPU无权访问它(并可以减少开销)。不,金属对内存要求非常严格。它无法处理内存量未定义的内容。缓冲

我正在写一个物体识别程序。我正在使用Metal Api。问题是我需要数组列表或动态数组,但Metal中没有动态数组。有什么方法可以声明一个或实现您自己的吗?

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

不,金属对内存要求非常严格。它无法处理内存量未定义的内容。缓冲区可用作半动态数组。如果您能计算出cpu端阵列的最大大小,只需创建一个该大小的缓冲区。更多关于为什么