İlk cudaMalloc çağrısı GPU'daki bazı başlatma çalışmaları nedeniyle yavaş (0,2 saniye gibi). Yalnızca başlatma işlemini yapan herhangi bir işlev var mı, böylece zamanı ayırabilir miyim? cudaSetDevice, zamanı 0.15 saniyeye düşürür, ancak yine de tüm init genel giderlerini ortadan kaldırmaz.İlk cudaMalloc çağrısı dışındaki GPU'yu başlatmak için herhangi bir işlev var mı?
14
A
cevap
21
bir çağrı
cudaFree(0);
için CUDA zamanında tembel bağlam kurulmasını zorlamak için kurallı yoldur. Yükü azaltamazsınız; bu, sürücünün, çalışma zamanının ve işletim sistemi gecikmelerinin bir işlevidir. Ancak yukarıdaki çağrı, program yürütme sırasında bu genel giderlerin nasıl ve ne zaman gerçekleşeceğini kontrol etmenizi sağlayacaktır.
yılında DÜZENLEME yapabilirsiniz, cudaFree()
çağrı açıkça bir bağlam intialise için gerekli değildir bu yüzden çalışma zamanı API bağlam başlangıç işlemlerini sezgisel kurnazca, cudaSetDevice
şimdi bağlam kurar böylece zamanla değiştiğini eklemek bunun yerine cudaSetDevice
kullanın. Ayrıca, ilk kurulum açılışında bazı kurulum zamanlarının devam edeceğini, buna rağmen bu durumun gerçekleşmeyeceğine dikkat edin. Çekirdek zamanlaması için, çekirdeği başlatmadan önce bir ısınma çağrısının dahil edilmesi en iyisidir, bu kurulum gecikmesini kaldırmak için zamanınız olacaktır. Çeşitli profil oluşturma araçlarının, fazladan API çağrıları veya çekirdek çağrıları olmadan bunu önlemek için yeterli ayrıntıya sahip olduğu anlaşılmaktadır.
İlgili konular
- 1. Yerel işlev bildirimleri için herhangi bir kullanım var mı?
- 2. PHP için PHP'den herhangi bir işlev var mı?
- 3. Çalışmak için işlev çağrısı
- 4. Haddock'da ilk olarak işlev parametrelerini tanımlamanın bir yolu var mı?
- 5. Bir işlev çağrısı yapma
- 6. Moodle için herhangi bir API var mı?
- 7. INLINABLE işlevini bir işlev için kullanmamanın bir nedeni var mı?
- 8. Bir sınıfın içindeki tüm yöntemlerin, her bir yönteme bu işlev çağrılarını yazmadan işlev çağrısı yapması için bir yolu var mı?
- 9. Şema - İsimsiz işlev çağrısı
- 10. Eclipse'den başlatıldığında JBoss'u hızlandırmak için herhangi bir ipucu var mı?
- 11. Bükülmüş sunucu için herhangi bir "uzak konsol" var mı?
- 12. dizgeye bir işlev çağrısı zorla
- 13. addr2line'a kütüphane çağrısı var mı?
- 14. PastryKit, Apple dışındaki herhangi bir kişi tarafından başarıyla uygulandı mı?
- 15. İşaretçiler ve İşlev Çağrısı
- 16. Oynatırken medya dosyasının bindirilmesi için herhangi bir yöntem var mı?
- 17. Bahar Roo için Thymeleaf için herhangi bir ekleme var mı?
- 18. Excel Formatting Bug - Bunun için herhangi bir iş var mı?
- 19. Özel X86_64 C işlev çağrısı için çağrı çağrısı
- 20. Haskell işlev çağrısı işlevini tersine çevirmek için işlev
- 21. Bir işlev işaretçisi bildirmeden işlev olarak void * çağrısı
- 22. $ kullanarak işlev çağrısı $ kapsamı
- 23. Durumum kaç işlev çağrısı için kullanılır?
- 24. javascript: kendisine işlev çağrısı
- 25. Bir arabelleğe yama uygulamak için elisp'te bir işlev var mı?
- 26. Bir sihirbaz oluşturmak için herhangi bir desen var mı?
- 27. HTML/Javascript sayfalarında formların dışındaki/olmayan giriş alanlarını kullanmanın herhangi bir tehlikesi var mı?
- 28. C++ evrensel işlev çağrısı
- 29. "Vurgulu" kodun herhangi bir yolu var mı?
- 30. Herhangi bir FACEBOX alt türü var mı?
Tam olarak! Tüm başlatma zamanını yakalar! Teşekkürler! – szli