вопрос о накладных расходах на многопоточность python

Я работаю над проектом с tenorrt и python. Не волнуйтесь, этот вопрос может не включать никаких вычислений графического процессора. Я чувствую, что в этом случае мы можем просто видеть tensorrt как numpy, поскольку оба пакета удаляют GIL, когда он покидает python. Я уже проделал большую работу, чтобы часть tensorrt работала. Надеюсь, этот вопрос не так уж важен для tenorrt. Во-первых, многопоточность действительно работает для tensorrt + python, поскольку tensorrt отбрасывает GIL при выполнении своей основной функции выполнения. Но все же я обнаружил, что в некоторых случаях это не работает. Еще есть параллельная работа, но для каждого потока есть большие накладные расходы. Он работает только тогда, когда выполнение занимает достаточно много времени, поэтому накладные расходы незначительны. хотя может быть правильным выбором будет перейти на c++, но я действительно хочу его еще больше оптимизировать и придерживаться python.Я поставил эксперимент, чтобы увидеть, сколько накладных расходов возникает при количестве подпотоков всего 1. Я использовал yappi для профилирования эксперимента. вот код, это не мой настоящий код, но этого должно быть достаточно. Я не показываю здесь функцию run_trt_execution, потому что считаю ее ненужной. Если кто-то считает, что вам нужно больше узнать о tenorrt, чтобы ответить на мой вопрос, я также рад поделиться своими небольшими знаниями об этом.

      yappi.start()
run_trt_execution(args)
yappi.stop()
      yappi.start()
cur_thread = threading.Thread(target=run_trt_execution,
                                                  args = args)
cur_thread.start()
cur_thread.join()
yappi.stop()

и вот конфигурации, так как yappi записывает время как процессора, так и стены, я экспериментировал, чтобы получить оба раза для обеих настроек. Вот журнал, который может быть слишком длинным:

      cpu multithread profile ______________________________+++++++++++++++++++++++++++++++++++++++==
name                                  ncall  tsub      ttot      tavg
..hon3.8/threading.py:859 Thread.run  1      0.000005  0.008511  0.008511
..tc_multithread.py:44 run_inference  1      0.006554  0.008506  0.008506
..da/cuda.py:244 DeviceArray.copy_to  1      0.000026  0.001400  0.001400
..rter.py:159 LazyModule.__getattr__  5      0.000014  0.001319  0.000264
..aphy/mod/importer.py:90 import_mod  5      0.000035  0.001301  0.000260
..r/logger.py:375 Logger.module_info  5      0.000024  0.000893  0.000179
..y:360 Logger._str_from_module_info  5      0.000018  0.000819  0.000164
..hy/logger/logger.py:363 try_append  15     0.000023  0.000802  0.000053
..aphy/logger/logger.py:372 <lambda>  5      0.000017  0.000753  0.000151
..ython3.8/posixpath.py:387 realpath  5      0.000020  0.000726  0.000145
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000013  0.000616  0.000308
..3.8/posixpath.py:396 _joinrealpath  5      0.000093  0.000564  0.000113
../cuda.py:368 DeviceArray.copy_from  1      0.000022  0.000521  0.000521
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000507  0.000512  0.000256
..tlib/__init__.py:109 import_module  5      0.000016  0.000326  0.000065
..rtlib._bootstrap>:1002 _gcd_import  5      0.000013  0.000307  0.000061
..lib._bootstrap>:986 _find_and_load  5      0.000045  0.000283  0.000057
..uda/cuda.py:352 DeviceArray.resize  1      0.000006  0.000281  0.000281
..lib/python3.8/posixpath.py:71 join  30     0.000115  0.000211  0.000007
../python3.8/posixpath.py:164 islink  30     0.000066  0.000209  0.000007
..python3.8/posixpath.py:372 abspath  5      0.000015  0.000140  0.000028
..ython3.8/posixpath.py:334 normpath  5      0.000057  0.000097  0.000019
..b._bootstrap>:157 _get_module_lock  10     0.000045  0.000096  0.000010
..bootstrap>:194 _lock_unlock_module  5      0.000015  0.000083  0.000017
..>:147 _ModuleLockManager.__enter__  5      0.000013  0.000082  0.000016
..._bootstrap>:1017 _handle_fromlist  15     0.000048  0.000074  0.000005
..python3.8/posixpath.py:41 _get_sep  40     0.000043  0.000064  0.000002
..ib/python3.8/posixpath.py:60 isabs  10     0.000026  0.000053  0.000005
..hy/logger/logger.py:207 Logger.log  5      0.000018  0.000049  0.000010
<frozen importlib._bootstrap>:176 cb  10     0.000027  0.000043  0.000004
..bootstrap>:58 _ModuleLock.__init__  10     0.000022  0.000033  0.000003
.._bootstrap>:78 _ModuleLock.acquire  10     0.000024  0.000029  0.000003
..bootstrap>:103 _ModuleLock.release  10     0.000020  0.000025  0.000003
..p>:151 _ModuleLockManager.__exit__  5      0.000008  0.000022  0.000004
..aphy/logger/logger.py:370 <lambda>  5      0.000008  0.000016  0.000003
..tlib._bootstrap>:937 _sanity_check  5      0.000008  0.000011  0.000002
..aphy/logger/logger.py:371 <lambda>  5      0.000006  0.000010  0.000002
../_internal.py:250 _ctypes.__init__  2      0.000005  0.000005  0.000002
..p>:143 _ModuleLockManager.__init__  5      0.000004  0.000004  0.000001
..polygraphy/util/util.py:499 volume  3      0.000004  0.000004  0.000001
..hy/logger/logger.py:276 should_log  5      0.000004  0.000004  0.000001
..0 DeviceArray._check_dtype_matches  2      0.000003  0.000003  0.000002
..olygraphy/cuda/cuda.py:24 void_ptr  4      0.000003  0.000003  0.000001
..ygraphy/cuda/cuda.py:59 Cuda.check  2      0.000002  0.000002  0.000001
..core/_internal.py:304 _ctypes.data  2      0.000002  0.000002  0.000001
..olygraphy/cuda/cuda.py:149 wrapper  2      0.000001  0.000001  0.000001
../cuda.py:203 try_get_stream_handle  2      0.000001  0.000001  0.000001
Function stats for (_MainThread) (0)
Clock type: CPU
Ordered by: totaltime, desc
name                                  ncall  tsub      ttot      tavg
..hon3.8/threading.py:859 Thread.run  1      0.000005  0.008511  0.008511
..tc_multithread.py:44 run_inference  1      0.006554  0.008506  0.008506
..da/cuda.py:244 DeviceArray.copy_to  1      0.000026  0.001400  0.001400
..rter.py:159 LazyModule.__getattr__  5      0.000014  0.001319  0.000264
..aphy/mod/importer.py:90 import_mod  5      0.000035  0.001301  0.000260
..r/logger.py:375 Logger.module_info  5      0.000024  0.000893  0.000179
..y:360 Logger._str_from_module_info  5      0.000018  0.000819  0.000164
..hy/logger/logger.py:363 try_append  15     0.000023  0.000802  0.000053
..aphy/logger/logger.py:372 <lambda>  5      0.000017  0.000753  0.000151
..ython3.8/posixpath.py:387 realpath  5      0.000020  0.000726  0.000145
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000013  0.000616  0.000308
..3.8/posixpath.py:396 _joinrealpath  5      0.000093  0.000564  0.000113
../cuda.py:368 DeviceArray.copy_from  1      0.000022  0.000521  0.000521
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000507  0.000512  0.000256
..tlib/__init__.py:109 import_module  5      0.000016  0.000326  0.000065
..rtlib._bootstrap>:1002 _gcd_import  5      0.000013  0.000307  0.000061
..lib._bootstrap>:986 _find_and_load  5      0.000045  0.000283  0.000057
..uda/cuda.py:352 DeviceArray.resize  1      0.000006  0.000281  0.000281
..lib/python3.8/posixpath.py:71 join  30     0.000115  0.000211  0.000007
../python3.8/posixpath.py:164 islink  30     0.000066  0.000209  0.000007
..python3.8/posixpath.py:372 abspath  5      0.000015  0.000140  0.000028
..n3.8/threading.py:834 Thread.start  1      0.000011  0.000099  0.000099
..ython3.8/posixpath.py:334 normpath  5      0.000057  0.000097  0.000019
..b._bootstrap>:157 _get_module_lock  10     0.000045  0.000096  0.000010
..bootstrap>:194 _lock_unlock_module  5      0.000015  0.000083  0.000017
..>:147 _ModuleLockManager.__enter__  5      0.000013  0.000082  0.000016
..._bootstrap>:1017 _handle_fromlist  15     0.000048  0.000074  0.000005
..python3.8/posixpath.py:41 _get_sep  40     0.000043  0.000064  0.000002
..on3.8/threading.py:979 Thread.join  1      0.000006  0.000054  0.000054
..hon3.8/threading.py:540 Event.wait  1      0.000008  0.000053  0.000053
..ib/python3.8/posixpath.py:60 isabs  10     0.000026  0.000053  0.000005
..hy/logger/logger.py:207 Logger.log  5      0.000018  0.000049  0.000010
..:1017 Thread._wait_for_tstate_lock  1      0.000012  0.000046  0.000046
<frozen importlib._bootstrap>:176 cb  10     0.000027  0.000043  0.000004
...8/threading.py:270 Condition.wait  1      0.000012  0.000038  0.000038
..8/threading.py:761 Thread.__init__  1      0.000015  0.000036  0.000036
..bootstrap>:58 _ModuleLock.__init__  10     0.000022  0.000033  0.000003
.._bootstrap>:78 _ModuleLock.acquire  10     0.000024  0.000029  0.000003
..bootstrap>:103 _ModuleLock.release  10     0.000020  0.000025  0.000003
..p>:151 _ModuleLockManager.__exit__  5      0.000008  0.000022  0.000004
..n3.8/threading.py:944 Thread._stop  1      0.000016  0.000021  0.000021
..aphy/logger/logger.py:370 <lambda>  5      0.000008  0.000016  0.000003
..tlib._bootstrap>:937 _sanity_check  5      0.000008  0.000011  0.000002
..aphy/logger/logger.py:371 <lambda>  5      0.000006  0.000010  0.000002
...8/threading.py:505 Event.__init__  1      0.000004  0.000009  0.000009
..ing.py:255 Condition._release_save  1      0.000007  0.000008  0.000008
../_internal.py:250 _ctypes.__init__  2      0.000005  0.000005  0.000002
..n3.8/_weakrefset.py:81 WeakSet.add  1      0.000004  0.000005  0.000005
..8/threading.py:1306 current_thread  2      0.000004  0.000005  0.000002
..reading.py:246 Condition.__enter__  1      0.000003  0.000004  0.000004
..p>:143 _ModuleLockManager.__init__  5      0.000004  0.000004  0.000001
..polygraphy/util/util.py:499 volume  3      0.000004  0.000004  0.000001
..hreading.py:222 Condition.__init__  1      0.000004  0.000004  0.000004
..hy/logger/logger.py:276 should_log  5      0.000004  0.000004  0.000001
..0 DeviceArray._check_dtype_matches  2      0.000003  0.000003  0.000002
..reading.py:1095 _MainThread.daemon  2      0.000003  0.000003  0.000001
..hreading.py:249 Condition.__exit__  1      0.000002  0.000003  0.000003
..ython3.8/_weakrefset.py:38 _remove  1      0.000002  0.000003  0.000003
..olygraphy/cuda/cuda.py:24 void_ptr  4      0.000003  0.000003  0.000001
..reading.py:261 Condition._is_owned  1      0.000002  0.000003  0.000003
..ython3.8/threading.py:734 _newname  1      0.000003  0.000003  0.000003
...py:258 Condition._acquire_restore  1      0.000001  0.000002  0.000002
..ygraphy/cuda/cuda.py:59 Cuda.check  2      0.000002  0.000002  0.000001
..core/_internal.py:304 _ctypes.data  2      0.000002  0.000002  0.000001
..ng.py:1177 _make_invoke_excepthook  1      0.000001  0.000001  0.000001
..olygraphy/cuda/cuda.py:149 wrapper  2      0.000001  0.000001  0.000001
../cuda.py:203 try_get_stream_handle  2      0.000001  0.000001  0.000001
..n3.8/threading.py:513 Event.is_set  2      0.000001  0.000001  0.000000
wall multithread profile________________________________++++++++++++++++++++++++++++++++==
Clock type: WALL
Ordered by: totaltime, desc

name                                  ncall  tsub      ttot      tavg      
..hon3.8/threading.py:859 Thread.run  1      0.000005  0.009640  0.009640
..tc_multithread.py:44 run_inference  1      0.008012  0.009635  0.009635
..on3.8/threading.py:979 Thread.join  1      0.000004  0.009415  0.009415
..:1017 Thread._wait_for_tstate_lock  1      0.000009  0.009408  0.009408
..rter.py:159 LazyModule.__getattr__  5      0.000011  0.000975  0.000195
..aphy/mod/importer.py:90 import_mod  5      0.000030  0.000963  0.000193
..da/cuda.py:244 DeviceArray.copy_to  1      0.000022  0.000955  0.000955
..r/logger.py:375 Logger.module_info  5      0.000022  0.000681  0.000136
../cuda.py:368 DeviceArray.copy_from  1      0.000032  0.000628  0.000628
..y:360 Logger._str_from_module_info  5      0.000016  0.000623  0.000125
..hy/logger/logger.py:363 try_append  15     0.000010  0.000607  0.000040
..aphy/logger/logger.py:372 <lambda>  5      0.000016  0.000577  0.000115
..ython3.8/posixpath.py:387 realpath  5      0.000013  0.000550  0.000110
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000513  0.000518  0.000259
..3.8/posixpath.py:396 _joinrealpath  5      0.000062  0.000447  0.000089
..uda/cuda.py:352 DeviceArray.resize  1      0.000008  0.000365  0.000365
..n3.8/threading.py:834 Thread.start  1      0.000015  0.000328  0.000328
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000009  0.000319  0.000160
..hon3.8/threading.py:540 Event.wait  1      0.000009  0.000277  0.000277
...8/threading.py:270 Condition.wait  1      0.000016  0.000260  0.000260
../python3.8/posixpath.py:164 islink  30     0.000038  0.000227  0.000008
..tlib/__init__.py:109 import_module  5      0.000012  0.000221  0.000044
..rtlib._bootstrap>:1002 _gcd_import  5      0.000010  0.000207  0.000041
..lib._bootstrap>:986 _find_and_load  5      0.000033  0.000191  0.000038
..lib/python3.8/posixpath.py:71 join  30     0.000074  0.000126  0.000004
..python3.8/posixpath.py:372 abspath  5      0.000008  0.000087  0.000017
..b._bootstrap>:157 _get_module_lock  10     0.000040  0.000067  0.000007
..>:147 _ModuleLockManager.__enter__  5      0.000009  0.000065  0.000013
..ython3.8/posixpath.py:334 normpath  5      0.000042  0.000062  0.000012
..bootstrap>:194 _lock_unlock_module  5      0.000009  0.000049  0.000010
..._bootstrap>:1017 _handle_fromlist  15     0.000034  0.000047  0.000003
..8/threading.py:761 Thread.__init__  1      0.000018  0.000042  0.000042
..python3.8/posixpath.py:41 _get_sep  40     0.000027  0.000037  0.000001
..hy/logger/logger.py:207 Logger.log  5      0.000016  0.000036  0.000007
..ib/python3.8/posixpath.py:60 isabs  10     0.000018  0.000030  0.000003
<frozen importlib._bootstrap>:176 cb  10     0.000018  0.000025  0.000002
.._bootstrap>:78 _ModuleLock.acquire  10     0.000018  0.000023  0.000002
..bootstrap>:58 _ModuleLock.__init__  10     0.000017  0.000022  0.000002
..bootstrap>:103 _ModuleLock.release  10     0.000014  0.000016  0.000002
..p>:151 _ModuleLockManager.__exit__  5      0.000006  0.000016  0.000003
..aphy/logger/logger.py:370 <lambda>  5      0.000006  0.000013  0.000003
...8/threading.py:505 Event.__init__  1      0.000006  0.000011  0.000011
..n3.8/threading.py:944 Thread._stop  1      0.000006  0.000008  0.000008
..aphy/logger/logger.py:371 <lambda>  5      0.000006  0.000007  0.000001
../_internal.py:250 _ctypes.__init__  2      0.000006  0.000006  0.000003
..tlib._bootstrap>:937 _sanity_check  5      0.000005  0.000006  0.000001
..n3.8/_weakrefset.py:81 WeakSet.add  1      0.000005  0.000005  0.000005
..hreading.py:222 Condition.__init__  1      0.000005  0.000005  0.000005
..reading.py:246 Condition.__enter__  1      0.000004  0.000005  0.000005
..8/threading.py:1306 current_thread  2      0.000004  0.000005  0.000002
..hy/logger/logger.py:276 should_log  5      0.000004  0.000004  0.000001
..ython3.8/_weakrefset.py:38 _remove  1      0.000004  0.000004  0.000004
..olygraphy/cuda/cuda.py:24 void_ptr  4      0.000003  0.000003  0.000001
..polygraphy/util/util.py:499 volume  3      0.000003  0.000003  0.000001
..0 DeviceArray._check_dtype_matches  2      0.000003  0.000003  0.000002
..p>:143 _ModuleLockManager.__init__  5      0.000003  0.000003  0.000001
..ing.py:255 Condition._release_save  1      0.000003  0.000003  0.000003
..reading.py:261 Condition._is_owned  1      0.000002  0.000003  0.000003
..hreading.py:249 Condition.__exit__  1      0.000003  0.000003  0.000003
..ython3.8/threading.py:734 _newname  1      0.000003  0.000003  0.000003
..ygraphy/cuda/cuda.py:59 Cuda.check  2      0.000002  0.000002  0.000001
...py:258 Condition._acquire_restore  1      0.000001  0.000002  0.000002
..reading.py:1095 _MainThread.daemon  2      0.000002  0.000002  0.000001
..core/_internal.py:304 _ctypes.data  2      0.000001  0.000001  0.000000
..olygraphy/cuda/cuda.py:149 wrapper  2      0.000001  0.000001  0.000000
..n3.8/threading.py:513 Event.is_set  2      0.000001  0.000001  0.000000
..ng.py:1177 _make_invoke_excepthook  1      0.000001  0.000001  0.000001
../cuda.py:203 try_get_stream_handle  2      0.000000  0.000000  0.000000
Function stats for (Thread) (1)

Clock type: WALL
Ordered by: totaltime, desc

name                                  ncall  tsub      ttot      tavg      
..hon3.8/threading.py:859 Thread.run  1      0.000005  0.009640  0.009640
..tc_multithread.py:44 run_inference  1      0.008012  0.009635  0.009635
..rter.py:159 LazyModule.__getattr__  5      0.000011  0.000975  0.000195
..aphy/mod/importer.py:90 import_mod  5      0.000030  0.000963  0.000193
..da/cuda.py:244 DeviceArray.copy_to  1      0.000022  0.000955  0.000955
..r/logger.py:375 Logger.module_info  5      0.000022  0.000681  0.000136
../cuda.py:368 DeviceArray.copy_from  1      0.000032  0.000628  0.000628
..y:360 Logger._str_from_module_info  5      0.000016  0.000623  0.000125
..hy/logger/logger.py:363 try_append  15     0.000010  0.000607  0.000040
..aphy/logger/logger.py:372 <lambda>  5      0.000016  0.000577  0.000115
..ython3.8/posixpath.py:387 realpath  5      0.000013  0.000550  0.000110
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000513  0.000518  0.000259
..3.8/posixpath.py:396 _joinrealpath  5      0.000062  0.000447  0.000089
..uda/cuda.py:352 DeviceArray.resize  1      0.000008  0.000365  0.000365
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000009  0.000319  0.000160
../python3.8/posixpath.py:164 islink  30     0.000038  0.000227  0.000008
..tlib/__init__.py:109 import_module  5      0.000012  0.000221  0.000044
..rtlib._bootstrap>:1002 _gcd_import  5      0.000010  0.000207  0.000041
..lib._bootstrap>:986 _find_and_load  5      0.000033  0.000191  0.000038
..lib/python3.8/posixpath.py:71 join  30     0.000074  0.000126  0.000004
..python3.8/posixpath.py:372 abspath  5      0.000008  0.000087  0.000017
..b._bootstrap>:157 _get_module_lock  10     0.000040  0.000067  0.000007
..>:147 _ModuleLockManager.__enter__  5      0.000009  0.000065  0.000013
..ython3.8/posixpath.py:334 normpath  5      0.000042  0.000062  0.000012
..bootstrap>:194 _lock_unlock_module  5      0.000009  0.000049  0.000010
..._bootstrap>:1017 _handle_fromlist  15     0.000034  0.000047  0.000003
..python3.8/posixpath.py:41 _get_sep  40     0.000027  0.000037  0.000001
..hy/logger/logger.py:207 Logger.log  5      0.000016  0.000036  0.000007
..ib/python3.8/posixpath.py:60 isabs  10     0.000018  0.000030  0.000003
<frozen importlib._bootstrap>:176 cb  10     0.000018  0.000025  0.000002
.._bootstrap>:78 _ModuleLock.acquire  10     0.000018  0.000023  0.000002
..bootstrap>:58 _ModuleLock.__init__  10     0.000017  0.000022  0.000002
..bootstrap>:103 _ModuleLock.release  10     0.000014  0.000016  0.000002
..p>:151 _ModuleLockManager.__exit__  5      0.000006  0.000016  0.000003
..aphy/logger/logger.py:370 <lambda>  5      0.000006  0.000013  0.000003
..aphy/logger/logger.py:371 <lambda>  5      0.000006  0.000007  0.000001
../_internal.py:250 _ctypes.__init__  2      0.000006  0.000006  0.000003
..tlib._bootstrap>:937 _sanity_check  5      0.000005  0.000006  0.000001
..hy/logger/logger.py:276 should_log  5      0.000004  0.000004  0.000001
..olygraphy/cuda/cuda.py:24 void_ptr  4      0.000003  0.000003  0.000001
..polygraphy/util/util.py:499 volume  3      0.000003  0.000003  0.000001
..0 DeviceArray._check_dtype_matches  2      0.000003  0.000003  0.000002
..p>:143 _ModuleLockManager.__init__  5      0.000003  0.000003  0.000001
..ygraphy/cuda/cuda.py:59 Cuda.check  2      0.000002  0.000002  0.000001
..core/_internal.py:304 _ctypes.data  2      0.000001  0.000001  0.000000
..olygraphy/cuda/cuda.py:149 wrapper  2      0.000001  0.000001  0.000000
../cuda.py:203 try_get_stream_handle  2      0.000000  0.000000  0.000000

one thread cpu time ____________________________++++++++++++++++++++++++++++++++++++++++++++++++++++
name                                  ncall  tsub      ttot      tavg      
..tc_multithread.py:44 run_inference  1      0.005786  0.007297  0.007297
..da/cuda.py:244 DeviceArray.copy_to  1      0.000016  0.001010  0.001010
..rter.py:159 LazyModule.__getattr__  5      0.000010  0.000940  0.000188
..aphy/mod/importer.py:90 import_mod  5      0.000025  0.000928  0.000186
..r/logger.py:375 Logger.module_info  5      0.000018  0.000621  0.000124
..y:360 Logger._str_from_module_info  5      0.000014  0.000568  0.000114
..hy/logger/logger.py:363 try_append  15     0.000018  0.000555  0.000037
..aphy/logger/logger.py:372 <lambda>  5      0.000013  0.000517  0.000103
..ython3.8/posixpath.py:387 realpath  5      0.000014  0.000497  0.000099
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000475  0.000479  0.000239
../cuda.py:368 DeviceArray.copy_from  1      0.000021  0.000474  0.000474
..3.8/posixpath.py:396 _joinrealpath  5      0.000068  0.000383  0.000077
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000007  0.000377  0.000188
..tlib/__init__.py:109 import_module  5      0.000012  0.000250  0.000050
..uda/cuda.py:352 DeviceArray.resize  1      0.000006  0.000247  0.000247
..rtlib._bootstrap>:1002 _gcd_import  5      0.000016  0.000236  0.000047
..lib._bootstrap>:986 _find_and_load  5      0.000035  0.000213  0.000043
..lib/python3.8/posixpath.py:71 join  30     0.000081  0.000150  0.000005
../python3.8/posixpath.py:164 islink  30     0.000048  0.000129  0.000004
..python3.8/posixpath.py:372 abspath  5      0.000011  0.000097  0.000019
..ython3.8/posixpath.py:334 normpath  5      0.000040  0.000066  0.000013
..>:147 _ModuleLockManager.__enter__  5      0.000012  0.000066  0.000013
..b._bootstrap>:157 _get_module_lock  10     0.000033  0.000065  0.000006
..bootstrap>:194 _lock_unlock_module  5      0.000011  0.000057  0.000011
..._bootstrap>:1017 _handle_fromlist  15     0.000032  0.000050  0.000003
..python3.8/posixpath.py:41 _get_sep  40     0.000031  0.000046  0.000001
..ib/python3.8/posixpath.py:60 isabs  10     0.000019  0.000038  0.000004
..hy/logger/logger.py:207 Logger.log  5      0.000013  0.000035  0.000007
<frozen importlib._bootstrap>:176 cb  10     0.000021  0.000033  0.000003
.._bootstrap>:78 _ModuleLock.acquire  10     0.000022  0.000026  0.000003
..bootstrap>:58 _ModuleLock.__init__  10     0.000016  0.000024  0.000002
..bootstrap>:103 _ModuleLock.release  10     0.000016  0.000020  0.000002
..p>:151 _ModuleLockManager.__exit__  5      0.000007  0.000018  0.000004
..aphy/logger/logger.py:370 <lambda>  5      0.000007  0.000012  0.000002
..uda/cuda.py:196 Stream.synchronize  1      0.000003  0.000008  0.000008
..aphy/logger/logger.py:371 <lambda>  5      0.000005  0.000008  0.000002
..tlib._bootstrap>:937 _sanity_check  5      0.000005  0.000007  0.000001
..cuda.py:76 Cuda.stream_synchronize  1      0.000004  0.000005  0.000005
../_internal.py:250 _ctypes.__init__  2      0.000004  0.000004  0.000002
..p>:143 _ModuleLockManager.__init__  5      0.000003  0.000003  0.000001
..olygraphy/cuda/cuda.py:24 void_ptr  5      0.000003  0.000003  0.000001
..hy/logger/logger.py:276 should_log  5      0.000003  0.000003  0.000001
..polygraphy/util/util.py:499 volume  3      0.000002  0.000002  0.000001
..0 DeviceArray._check_dtype_matches  2      0.000002  0.000002  0.000001
..ygraphy/cuda/cuda.py:59 Cuda.check  3      0.000002  0.000002  0.000001
..olygraphy/cuda/cuda.py:149 wrapper  3      0.000001  0.000001  0.000000
..core/_internal.py:304 _ctypes.data  2      0.000001  0.000001  0.000001
../cuda.py:203 try_get_stream_handle  2      0.000001  0.000001  0.000000

one thread wall time__________________++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Clock type: WALL
Ordered by: totaltime, desc

name                                  ncall  tsub      ttot      tavg      
..tc_multithread.py:44 run_inference  1      0.005838  0.006989  0.006989
..da/cuda.py:244 DeviceArray.copy_to  1      0.000013  0.000788  0.000788
..rter.py:159 LazyModule.__getattr__  5      0.000005  0.000601  0.000120
..aphy/mod/importer.py:90 import_mod  5      0.000020  0.000593  0.000119
..raphy/cuda/cuda.py:118 Cuda.memcpy  2      0.000470  0.000472  0.000236
..r/logger.py:375 Logger.module_info  5      0.000013  0.000389  0.000078
..y:360 Logger._str_from_module_info  5      0.000010  0.000355  0.000071
..hy/logger/logger.py:363 try_append  15     0.000008  0.000345  0.000023
../cuda.py:368 DeviceArray.copy_from  1      0.000022  0.000340  0.000340
..aphy/logger/logger.py:372 <lambda>  5      0.000010  0.000325  0.000065
..ython3.8/posixpath.py:387 realpath  5      0.000011  0.000309  0.000062
..3.8/posixpath.py:396 _joinrealpath  5      0.000043  0.000244  0.000049
..uda/cuda.py:237 DeviceArray.nbytes  2      0.000006  0.000227  0.000113
..uda/cuda.py:352 DeviceArray.resize  1      0.000006  0.000184  0.000184
..tlib/__init__.py:109 import_module  5      0.000006  0.000167  0.000033
..rtlib._bootstrap>:1002 _gcd_import  5      0.000010  0.000160  0.000032
..lib._bootstrap>:986 _find_and_load  5      0.000039  0.000149  0.000030
../python3.8/posixpath.py:164 islink  30     0.000027  0.000097  0.000003
..lib/python3.8/posixpath.py:71 join  30     0.000050  0.000078  0.000003
..python3.8/posixpath.py:372 abspath  5      0.000004  0.000052  0.000010
..>:147 _ModuleLockManager.__enter__  5      0.000008  0.000045  0.000009
..b._bootstrap>:157 _get_module_lock  10     0.000023  0.000042  0.000004
..ython3.8/posixpath.py:334 normpath  5      0.000027  0.000037  0.000007
..bootstrap>:194 _lock_unlock_module  5      0.000006  0.000033  0.000007
..._bootstrap>:1017 _handle_fromlist  15     0.000018  0.000027  0.000002
..ib/python3.8/posixpath.py:60 isabs  10     0.000012  0.000021  0.000002
..python3.8/posixpath.py:41 _get_sep  40     0.000016  0.000021  0.000001
..hy/logger/logger.py:207 Logger.log  5      0.000009  0.000021  0.000004
.._bootstrap>:78 _ModuleLock.acquire  10     0.000015  0.000017  0.000002
..bootstrap>:58 _ModuleLock.__init__  10     0.000012  0.000016  0.000002
<frozen importlib._bootstrap>:176 cb  10     0.000009  0.000015  0.000001
..bootstrap>:103 _ModuleLock.release  10     0.000010  0.000013  0.000001
..p>:151 _ModuleLockManager.__exit__  5      0.000004  0.000012  0.000002
..aphy/logger/logger.py:370 <lambda>  5      0.000002  0.000007  0.000001
..aphy/logger/logger.py:371 <lambda>  5      0.000004  0.000005  0.000001
..uda/cuda.py:196 Stream.synchronize  1      0.000001  0.000005  0.000005
..cuda.py:76 Cuda.stream_synchronize  1      0.000004  0.000004  0.000004
..p>:143 _ModuleLockManager.__init__  5      0.000003  0.000003  0.000001
../_internal.py:250 _ctypes.__init__  2      0.000002  0.000002  0.000001
..olygraphy/cuda/cuda.py:24 void_ptr  5      0.000002  0.000002  0.000000
..hy/logger/logger.py:276 should_log  5      0.000002  0.000002  0.000000
..polygraphy/util/util.py:499 volume  3      0.000001  0.000001  0.000000
..0 DeviceArray._check_dtype_matches  2      0.000001  0.000001  0.000000
..tlib._bootstrap>:937 _sanity_check  5      0.000001  0.000001  0.000000
..ygraphy/cuda/cuda.py:59 Cuda.check  3      0.000000  0.000000  0.000000
..core/_internal.py:304 _ctypes.data  2      0.000000  0.000000  0.000000
../cuda.py:203 try_get_stream_handle  2      0.000000  0.000000  0.000000
..olygraphy/cuda/cuda.py:149 wrapper  3      0.000000  0.000000  0.000000

вы можете видеть, что для всего версия потока медленнее. Мне просто интересно, почему это так.

0 ответов

Другие вопросы по тегам