2014-03-05 29 views
-2

由「CUDA卓越中心,IIT孟買」中提到如何在內核中包含標準c文件?

我工作的一個網絡工具的並行化,但我不能夠包括標準的C文件,如內核socket.h中,因爲內核不支持標準C頭它只理解一些預定義的數據類型和功能。所以我只想知道如何在內核中包含標準頭文件或者是否有其他方法?

+2

如果您的問題是「如何在OpenCL內核中包含套接字」,那麼答案是「不可能,套接字在OpenCL內核中不可見」。 OpenCL內核只能通過緩衝區或靜態數據類型與主機端代碼進行交互。 – DarkZeros

回答

2

這不僅僅是無法包含標題的問題。 CUDA和OpenCL內核運行在專用軟件環境中,通常位於專用硬件(如GPU)上,並且軟件環境不包含網絡堆棧。

無論如何,CUDA和OpenCL可能都不適合網絡應用。它們意味着處理器密集型,data-parallel任務 - 在大量數據值上執行相同的算法。 GPU被設計用於跨多個線程同時執行相同的指令,但在網絡應用程序中,傳入的請求被分派給線程,這些線程需要能夠彼此獨立工作。您不希望您的應用程序延遲發送一個響應,直到其他31個響應也準備發送。