如果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,则表示缓存的模块已过期,建议使用新模块.