如何解决如何在 macOS Big Sur 中对 OpenCL 使用 cl_khr_3d_image_writes 扩展
目前,我正在尝试在我的 M1 Mac 上为 OpenCL 启用 cl_khr_3d_image_writes 扩展,但是 cl_kernel.h 文件是只读的,无法写入。我已禁用 SIP,但问题仍然存在。我做错了什么?
解决方法
我不清楚编辑头文件会实现什么。编辑系统标题几乎总是一个坏主意,当您发现自己想要这样做时,退后一步思考您真正想要实现的目标通常是个好主意。几乎总有比编辑系统标题更好的方法。
所以,您想使用 3D 图像写入。
- 您的设备是否报告支持此扩展程序?这是首先要检查的事情,在尝试使用扩展程序之前,您也应该始终在最终用户的系统上检查这一点,否则您将面临更困难的错误处理。
- macOS 支持 OpenCL 1.2,which has direct support for the 3D image write functions。创建上下文时,请确保创建与 1.2 版兼容的上下文,而不是 1.0/1.1 版。
- 在 OpenCL 1.2 中,如果设备支持扩展,您需要做的就是启用它并调用那些内置函数来执行写入。
- 要在内核中启用扩展,请使用
#pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable
我应该指出 OpenCL 在 macOS 上已被弃用,它正在被 Metal 计算着色器取代。在开发新软件时,建议您改用那些软件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。