Cuda 如何在内核中包含标准c文件?

Cuda 如何在内核中包含标准c文件?,cuda,opencl,Cuda,Opencl,由“印度理工学院孟买分校CUDA卓越中心”推荐 我正在研究一个网络工具的并行化,但我不能在内核中包含标准的c文件,比如socket.h,因为内核不支持标准的c头文件,它只理解一些预定义的数据类型和函数。所以我只想知道如何在内核中包含标准头文件,或者是否有其他方法可以做到这一点?这不仅仅是无法包含头文件的问题。CUDA和OpenCL内核在专用软件环境中运行,通常在GPU等专用硬件上运行,并且该软件环境不包括网络堆栈 无论如何,CUDA和OpenCL可能并不适合网络应用程序。它们用于处理器密集型任务

由“印度理工学院孟买分校CUDA卓越中心”推荐


我正在研究一个网络工具的并行化,但我不能在内核中包含标准的c文件,比如socket.h,因为内核不支持标准的c头文件,它只理解一些预定义的数据类型和函数。所以我只想知道如何在内核中包含标准头文件,或者是否有其他方法可以做到这一点?

这不仅仅是无法包含头文件的问题。CUDA和OpenCL内核在专用软件环境中运行,通常在GPU等专用硬件上运行,并且该软件环境不包括网络堆栈

无论如何,CUDA和OpenCL可能并不适合网络应用程序。它们用于处理器密集型任务——在大量数据值上执行相同的算法。GPU设计用于在多个线程之间同时执行相同的指令,但在网络应用程序中,传入的请求被分派到线程,线程需要能够彼此独立地工作。您不希望应用程序延迟发送一个响应,直到31个响应也准备好发送。

如果您的问题是“如何在OpenCL内核中包含套接字”,那么答案是“不可能,套接字在OpenCL内核中不可见”。OpenCL内核只能通过缓冲区或静态数据类型与主机端代码进行交互。