2016-01-12 2 views
4

Каждый раз, когда я создаю и запускаю свой код CUDAfy, для загрузки модуля и его перевода требуется значительное время. Есть ли способ сократить время, затраченное на перевод и загрузку?Производительность модуля CUDAfy

ответ

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 новый.

 Смежные вопросы

  • Нет связанных вопросов^_^