pytorch/caffe2/python/test
Ilia Cherniavskii 1149b9bbb5 Polling async net executor
Summary:
Implementation of polling async net executor.
Notes:
- New net executor async_polling - schedules CPU and GPU ops asynchronously, uses single polling thread
- Events: update to Caffe2 events to support async CPU events, adding new methods:
 Query() - non-blocking checking of event states: INITIALIZED -> RECORDED -> SUCCESS/FAILED
 ErrorMessage() - when operation runs asynchronously and fails calling this on event will give error message
- Tasks: using existing DAGNet's algorithm to compute CPU and GPU chains, a separate task for each chain
- Polling: using single thread to query state of events - for CPU tasks atomically queries task state, for GPU task - uses cudaEventQuery; using Event
- Scheduling of CPU ops: using global thread pools
- Scheduling of GPU ops: using GPU thread pool per GPU device

Reviewed By: dzhulgakov

Differential Revision: D5985110

fbshipit-source-id: a9de7fcbb71d046a3aa1b573072b89a65dfeee8c
2017-11-03 07:27:44 -07:00
..
blob_deallocation_test.py Fix crash in blob deallocation 2017-10-10 19:03:01 -07:00
do_op_test.py DoOp reuse workspace and test 2017-10-12 13:37:34 -07:00
executor_test.py Polling async net executor 2017-11-03 07:27:44 -07:00
executor_test_util.py Polling async net executor 2017-11-03 07:27:44 -07:00