【发布时间】:2015-04-03 10:43:07
【问题描述】:
我正在使用 Cudafy,希望我的用户能够在不安装 CUDA SDK 的情况下使用 CUDA,但他们可以使用 Cudafy DLL。为了避免在CudafyTranslator.Cudafy(types) 中自动完成 nvcc 编译,我使用了以下方法:
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 是System.Types 的数组。
问题出在第三行,TryDeserialize 总是返回null。我检查了文件是否存在并且modulePath 是正确的并且文件存在。有人能解释一下这个问题吗?
如果这并不意味着重新编写我的 Cudafy 模块,我已经准备好改变我的方法。
【问题讨论】:
-
我刚刚遇到了同样的问题,但你的代码似乎对我有用!
标签: c# cudafy.net