Is that so Runtime won't run independent subgraphs in parallel? Or only certain 
runtime won't do so?

I'm new to TVM, but a quick search shows some infrastructure built-in:
```
/work/git_repo/tvm/src/runtime$ grep -R -i parallel *
crt/crt_backend_api.c:int TVMBackendParallelLaunch(FTVMParallelLambda flambda, 
void* cdata, int num_task) {
crt/crt_backend_api.c:  TVMParallelGroupEnv env;
library_module.cc:  TVM_INIT_CONTEXT_FUNC(TVMBackendParallelLaunch);
library_module.cc:  TVM_INIT_CONTEXT_FUNC(TVMBackendParallelBarrier);
micro/standalone/utvm_runtime_api.h:} TVMParallelGroupEnv;
micro/standalone/utvm_runtime_api.h:typedef int (*FTVMParallelLambda)(int 
task_id, TVMParallelGroupEnv* penv, void* cdata);
micro/standalone/utvm_runtime_api.h:TVM_MICRO_RUNTIME_API_BACKEND_API int 
TVMBackendParallelLaunch(FTVMParallelLambda flambda,
micro/standalone/utvm_graph_runtime.cc:  
TVM_INIT_CONTEXT_FUNC(TVMBackendParallelLaunch);
micro/standalone/utvm_graph_runtime.cc:// 
TVM_INIT_CONTEXT_FUNC(TVMBackendParallelBarrier);
micro/standalone/utvm_runtime_api.cc:int 
TVMBackendParallelLaunch(FTVMParallelLambda flambda, void* cdata, int num_task) 
{
micro/standalone/utvm_runtime_api.cc:  TVMParallelGroupEnv env;
thread_pool.cc:class ParallelLauncher {
thread_pool.cc:  void Init(FTVMParallelLambda flambda,
thread_pool.cc:  ~ParallelLauncher() {
thread_pool.cc:  static ParallelLauncher* ThreadLocal() {
thread_pool.cc:    return dmlc::ThreadLocalStore<ParallelLauncher>::Get();
thread_pool.cc:  // The parallel lambda
thread_pool.cc:  FTVMParallelLambda flambda;
thread_pool.cc:  TVMParallelGroupEnv env;
thread_pool.cc:    ParallelLauncher* launcher;
thread_pool.cc:  int Launch(FTVMParallelLambda flambda,
thread_pool.cc:    ParallelLauncher* launcher = ParallelLauncher::ThreadLocal();
thread_pool.cc:        << "Cannot launch parallel job inside worker, consider 
fuse then parallel";
thread_pool.cc:          << "Request parallel sync task larger than number of 
threads used "
thread_pool.cc:      TVMParallelGroupEnv* penv = &(tsk.launcher->env);
thread_pool.cc:    ParallelLauncher::ThreadLocal()->is_worker = true;
thread_pool.cc:      TVMParallelGroupEnv* penv = &(task.launcher->env);
thread_pool.cc:int TVMBackendParallelLaunch(
thread_pool.cc:    FTVMParallelLambda flambda,
thread_pool.cc:  #pragma omp parallel num_threads(num_workers)
thread_pool.cc:    TVMParallelGroupEnv env;
thread_pool.cc:int TVMBackendParallelBarrier(int task_id, TVMParallelGroupEnv* 
penv) {
```





---
[Visit 
Topic](https://discuss.tvm.ai/t/execution-order-of-operators-at-runtime-in-tvm/6572/4)
 to respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.ai/email/unsubscribe/5a0e9f7cce7a402854738b9e43fb0d4eeafa84893756a5256bcc82e727ecf416).

Reply via email to