Каждый раз, когда я создаю и запускаю свой код CUDAfy, для загрузки модуля и его перевода требуется значительное время. Есть ли способ сократить время, затраченное на перевод и загрузку?Производительность модуля CUDAfy
4
A
ответ
6
Может быть нежелательно всегда звонить Cudafy, если код GPU не был изменен. Вы можете кэшировать модули Cudafy, используя сериализацию.
CudafyModule km = CudafyModule.TryDeserialize();
if (km == null || !km.TryVerifyChecksums())
{
km = CudafyTranslator.Cudafy();
km.Serialize();
}
Метод TryDeserialize попытается найти * .cdfy файл в текущем каталоге с тем же именем, что и тип вызова. Если это не найдено или не выполняется, возвращается значение null и пытается создать новый модуль. Если он не равен нулю, проверьте, относится ли кэш-модуль к той же версии .NET-кода, с которой он был создан. Для этого вызовите TryVerifyChecksums. Если это возвращает значение false, это означает, что кешированный модуль устарел, и рекомендуется cudafy новый.