CUDAfy模块的性能

时间:2016-01-12 10:25:47

标签: c# cuda cudafy.net

每次构建和运行我的CUDAfy代码时,加载模块并进行翻译都需要相当长的时间。 有没有办法减少翻译和加载过程中的时间?

1 个答案:

答案 0 :(得分:6)

如果未更改GPU代码,可能不希望始终调用Cudafy。您可以使用序列化来缓存Cudafy模块。

CudafyModule km = CudafyModule.TryDeserialize();
if (km == null || !km.TryVerifyChecksums())
{
    km = CudafyTranslator.Cudafy();
    km.Serialize();
}

TryDeserialize方法将尝试在当前目录中查找与调用类型相同的文件名的* .cdfy文件。如果找不到或失败,则返回null并尝试创建一个新模块。如果它不为null,则检查高速缓存模块是否引用它的相同版本的.NET代码。要执行此操作,请调用TryVerifyChecksums。如果返回false,则表示缓存的模块已过期,建议使用新模块。