in nmt/nmt.cc [86:233]
int main(int argc, char **argv)
{
Runtime::set_top_level_task_id(TOP_LEVEL_TASK_ID);
{
TaskVariantRegistrar registrar(TOP_LEVEL_TASK_ID, "top_level");
registrar.add_constraint(ProcessorConstraint(Processor::LOC_PROC));
//registrar.set_inner();
Runtime::preregister_task_variant<top_level_task>(registrar, "top_level");
}
// DNN_INIT_TASK
{
TaskVariantRegistrar registrar(CUDNN_INIT_TASK_ID, "cudnn_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<DnnHandle, init_cudnn>(registrar, "cudnn_init_task");
}
//
{
TaskVariantRegistrar registrar(WORD_INIT_TASK_ID, "word_init_task(dummy)");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::word_init_task>(registrar, "word_init_task(dummy)");
}
// Word Embedding task
{
TaskVariantRegistrar registrar(EMBED_INIT_TASK_ID, "embed_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<OpMeta*, Embed::init_task>(registrar, "embed_init_task");
}
{
TaskVariantRegistrar registrar(EMBED_FWD_TASK_ID, "embed_fwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<Embed::forward_task>(registrar, "embed_fwd_task");
}
{
TaskVariantRegistrar registrar(EMBED_BWD_TASK_ID, "embed_bwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<Embed::backward_task>(registrar, "embed_bwd_task");
}
// LSTM task
{
TaskVariantRegistrar registrar(LSTM_INIT_TASK_ID, "lstm_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<OpMeta*, LSTM::init_task>(registrar, "lstm_init_task");
}
{
TaskVariantRegistrar registrar(LSTM_FWD_TASK_ID, "lstm_fwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<LSTM::forward_task>(registrar, "lstm_fwd_task");
}
{
TaskVariantRegistrar registrar(LSTM_BWD_TASK_ID, "lstm_bwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<LSTM::backward_task>(registrar, "lstm_bwd_task");
}
// Rnn Linear task
{
TaskVariantRegistrar registrar(RNN_LINEAR_INIT_TASK_ID, "linear_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<OpMeta*, Linear::init_task>(registrar, "linear_init_task");
}
{
TaskVariantRegistrar registrar(RNN_LINEAR_FWD_TASK_ID, "linar_fwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<Linear::forward_task>(registrar, "linear_fwd_task");
}
{
TaskVariantRegistrar registrar(RNN_LINEAR_BWD_TASK_ID, "linear_bwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<Linear::backward_task>(registrar, "linear_bwd_task");
}
{
TaskVariantRegistrar registrar(RNN_LINEAR_BWD2_TASK_ID, "linear_bwd2_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<Linear::backward2_task>(registrar, "linear_bwd2_task");
}
// Softmax (Data Parallel Implementation) task
{
TaskVariantRegistrar registrar(RNN_SOFTMAXDP_INIT_TASK_ID, "softmaxDP_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<OpMeta*, SoftmaxDP::init_task>(registrar, "softmaxDP_init_task");
}
{
TaskVariantRegistrar registrar(RNN_SOFTMAXDP_FWD_TASK_ID, "softmaxDP_fwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<SoftmaxDP::forward_task>(registrar, "softmaxDP_fwd_task");
}
{
TaskVariantRegistrar registrar(RNN_SOFTMAXDP_BWD_TASK_ID, "softmaxDP_bwd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<SoftmaxDP::backward_task>(registrar, "softmaxDP_bwd_task");
}
// Params related tasks
{
TaskVariantRegistrar registrar(PARAMS_INIT_TASK_ID, "params_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::params_init_task>(registrar, "params_init_task");
}
{
TaskVariantRegistrar registrar(ZERO_1D_INIT_TASK_ID, "zero_1d_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::zero_1d_init_task>(registrar, "zero_1d_init_task");
}
{
TaskVariantRegistrar registrar(ZERO_2D_INIT_TASK_ID, "zero_2d_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::zero_2d_init_task>(registrar, "zero_2d_init_task");
}
{
TaskVariantRegistrar registrar(ZERO_3D_INIT_TASK_ID, "zero_3d_init_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::zero_3d_init_task>(registrar, "zero_3d_init_task");
}
{
TaskVariantRegistrar registrar(PARAMS_UPD_TASK_ID, "params_upd_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::params_update_task>(registrar, "params_upd_task");
}
// Dummy tasks
{
TaskVariantRegistrar registrar(DUMMY_TASK_ID, "dummy_task");
registrar.add_constraint(ProcessorConstraint(Processor::TOC_PROC));
registrar.set_leaf();
Runtime::preregister_task_variant<RnnModel::dummy_task>(registrar, "dummy_task");
}
Runtime::add_registration_callback(update_mappers);
return Runtime::start(argc, argv);
}