CUDAfy模块的性能

Performance of CUDAfy module

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

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

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

TryDeserialize 方法将尝试在当前目录中查找与调用类型具有相同文件名的 *.cdfy 文件。如果找不到或失败,则返回 null 并尝试创建一个新的 module.If 它不是 null 然后检查缓存的模块是否引用与创建它的 .NET 代码相同的版本。为此调用 TryVerifyChecksums。如果这个 returns false 那么这意味着缓存的模块已经过时了,建议 cudafy 一个新的。