5

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

4

1 回答 1

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,则表示缓存的模块已过期,建议更新一个新模块。

于 2016-01-12T10:33:48.640 回答