我正在探索將常見C#代碼構造映射到C++ CUDA代碼以在GPU上運行的各種選項。該系統的結構如下(箭頭表示方法調用):將C#方法轉換爲C++方法
C#程序 - > C#GPU LIB - > C++ CUDA實現LIB
在GPU庫的方法可能看起來像這樣:
public static void Map<T>(this ICollection<T> c, Func<T,T> f)
{
//Call 'f' on each element of 'c'
}
這是對每個元素運行函數的ICollection類型的擴展方法。不過,我想要做的是調用C++庫並使其在GPU上運行這些方法。這需要將函數以某種方式轉換爲C++代碼。這可能嗎?詳細說明一下,如果我的庫的用戶執行一個帶有一些任意代碼的方法(用C#),我想將這些代碼翻譯成C++ equivelant,以便我可以在CUDA上運行它。我覺得有沒有簡單的方法來做到這一點,但我想知道是否有辦法做到這一點或達到一些相同的效果。
我想知道的一件事是捕獲函數來轉換表達式並使用它將其映射到C++ equivelant。任何人都有這方面的經驗?
GREAT鏈接,謝謝!!! – endian 2008-10-14 08:06:09