我正在使用 Cudafy,并希望我的用户能够在不安装 CUDA SDK 的情况下使用 CUDA,但他们可以使用 Cudafy DLL。为避免在 中自动完成 nvcc 编译CudafyTranslator.Cudafy(types)
,我使用以下方法:
string directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string modulePath = Path.Combine(directory, myType.Name + ".cdfy");
CudafyModule km = CudafyModule.TryDeserialize(modulePath);
if (ReferenceEquals(km, null) || !km.TryVerifyChecksums())
{
km = CudafyTranslator.Cudafy(types);
km.Serialize(modulePath);
}
GPU.LoadModule(km);
types
s的数组在哪里System.Type
。
问题在第三行,TryDeserialize
总是返回null
。我已检查该文件是否存在且modulePath
正确且该文件是否存在。有人可以对此事有所了解吗?
如果这并不意味着重新编写我的 Cudafy 模块,我已经准备好改变我的方法。