Я использую Cudafy и хочу, чтобы мои пользователи могли использовать CUDA без установки CUDA SDK, но они могут использовать Cudafy DLL. Чтобы избежать NVCC компиляции происходит автоматически в CudafyTranslator.Cudafy(types)
, я использую следующий подход:Избегание компиляции nvcc при использовании Cudafy
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.Type
с.
Проблема в третьей строке, TryDeserialize
всегда возвращает null
. Я проверил, что файл существует, и modulePath
верен, и файл существует. Может кто-то пролить свет на этот вопрос?
Я готов изменить свой подход, если это не означает перезапись моих модулей Cudafy.
Я просто запустить в ту же проблему, но ваш код кажется работать на меня! – Val