CUDAfy模块的性能

本文关键字:性能 模块 CUDAfy | 更新日期: 2023-09-27 18:29:53

每次构建和运行CUDAfy代码时,加载和翻译模块都需要相当长的时间。有什么方法可以减少翻译和加载过程中花费的时间吗?

CUDAfy模块的性能

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

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

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