Obecnie pracuję z pakietem CUDArt. GitHub documentation zawiera następujący fragment kodu podczas ładowania modułu PTX zawierający niestandardowy CUDA C jądra:Co to znaczy "sfinalizować" w Julii?
md = CuModule("mycudamodule.ptx", false) # false means it will not be automatically finalized
(komentarz w oryginale)
Próbuję zrozumieć, co dokładnie ten false
opcję finalizacji środki i kiedy chciałbym/nie chciałem z niego skorzystać. Natknąłem się na ten post na SO (What is the right way to write a module finalize method in Julia?). cytuje to z dokumentacji Julia jako:
finalizatora (x, funkcja)
przypisać funkcję f (x), która ma zostać wywołana, gdy nie ma odniesienia programowe dostępne dla x. Zachowanie tej funkcji jest nieprzewidywalne, jeśli x jest typu bitowego.
Nie do końca rozumiem, co to oznacza, a nawet czy finalizacja tutaj jest taka sama jak ta, o której mowa w przykładzie CUDArt. Na przykład nie ma sensu próbować wywoływać funkcji na argumentach x
, gdy ten argument nie jest dostępny dla programu - w jaki sposób mogłoby to być możliwe? Tak więc byłbym wdzięczny za każdą pomoc w wyjaśnieniu:
- Co to znaczy „sfinalizować” w Julia i
- Kiedy będzie/nie będzie chciał go używać w kontekście importowania .ptx moduły z CUDArt
Możesz także ręcznie uruchomić finalizator. z 'sfinalizuj (X)' –