首页 > 解决方案 > 金属着色语言中的关键字“设备”是什么意思

问题描述

金属着色语言中的关键字“设备”是什么意思?如:

kernel void add_alps_2d_kernel(const device int *vector1 [[buffer(1)]],
                           device int vector2 [[buffer(2)]],
                           uint id [[ thread_position_in_grid ]]) {

}

标签: iosmetal

解决方案


根据语言规范文档

在程序中声明为指针的 Metal 图形和内核函数的参数必须使用 Metal 设备、线程组、threadgroup_imageblock 或常量地址空间属性声明。

此外:

设备地址空间名称是指从设备内存池中分配的既可读又可写的缓冲内存对象。

所以它是一个内存规范,指示指针所在的位置。请注意,const地址空间属性前面的使用表示它是只读的。您还可以在使用 Metal 中的内存中找到更多信息


推荐阅读