我可以在 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 完成将完全违背它的意义。通常的模式是:

  1. 在主机环境中收集和准备您的数据(基于 CPU 的常规编程环境;在您的情况下听起来像 C#,尽管还不完全清楚?)
  2. 创建 OpenCL 缓冲区并用数据填充它们
  3. 在内核中执行计算
  4. 将结果放入缓冲区
  5. 从主机上的缓冲区中读回结果。
  6. 进一步处理结果,例如写入主机上的磁盘、网络或显示器。