我正在探索将常见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