CUDAfy模块的性能

Alc*_*ist 4 c# cuda cudafy.net

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

Abd*_*dul 6

如果GPU代码没有被更改,可能不希望总是调用Cudafy.您可以使用序列化来缓存Cudafy模块.

CudafyModule km = CudafyModule.TryDeserialize();
if (km == null || !km.TryVerifyChecksums())
{
    km = CudafyTranslator.Cudafy();
    km.Serialize();
}
Run Code Online (Sandbox Code Playgroud)

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