我可以在 C# 中使用 OpenCL 发出 HTTP 请求吗?
Can I make HTTP requests using OpenCL in C#?
我可以在 C# 中使用 OpenCL 发出 HTTP 请求吗?我尝试执行此调用 system("curl website.com")
但只收到有关 system
隐式调用的错误。
不,你不能。 OpenCL kernel C/C++ 语言不支持标准 C 库 - 这个库被一组自定义的标准函数取代,面向数学编程。
可以在内核语言中使用的函数列表here。
正如其他人所说,不,在 OpenCL 内核中 I/O 是不可能的。
而且,这样做没有任何意义; OpenCL 专注于 computationally-intensive 大规模并行数据处理。等待 I/O 完成将完全违背它的意义。通常的模式是:
- 在主机环境中收集和准备您的数据(基于 CPU 的常规编程环境;在您的情况下听起来像 C#,尽管还不完全清楚?)
- 创建 OpenCL 缓冲区并用数据填充它们
- 在内核中执行计算
- 将结果放入缓冲区
- 从主机上的缓冲区中读回结果。
- 进一步处理结果,例如写入主机上的磁盘、网络或显示器。
我可以在 C# 中使用 OpenCL 发出 HTTP 请求吗?我尝试执行此调用 system("curl website.com")
但只收到有关 system
隐式调用的错误。
不,你不能。 OpenCL kernel C/C++ 语言不支持标准 C 库 - 这个库被一组自定义的标准函数取代,面向数学编程。
可以在内核语言中使用的函数列表here。
正如其他人所说,不,在 OpenCL 内核中 I/O 是不可能的。
而且,这样做没有任何意义; OpenCL 专注于 computationally-intensive 大规模并行数据处理。等待 I/O 完成将完全违背它的意义。通常的模式是:
- 在主机环境中收集和准备您的数据(基于 CPU 的常规编程环境;在您的情况下听起来像 C#,尽管还不完全清楚?)
- 创建 OpenCL 缓冲区并用数据填充它们
- 在内核中执行计算
- 将结果放入缓冲区
- 从主机上的缓冲区中读回结果。
- 进一步处理结果,例如写入主机上的磁盘、网络或显示器。