Skip to content
Snippets Groups Projects

[Scheduler] Add Scheduler.getNodeScheduling method and fix sequential function.

Merged Cyril Moineau requested to merge GetScheduling into main
2 unresolved threads

Feature

  • Scheduling porvide a list of nodes sorted by the scheduling order

Fix

  • parallel, sequential and residual function now work on python, issue with the binding and the py::explicitly_convertible function.

Refactor:

Edited by Cyril Moineau

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
38 38 Aidge::NbElts_t Aidge::Operator::getNbProducedData(Aidge::IOIndex_t outputIdx) const {
39 39 return mImpl->getNbProducedData(outputIdx);
40 40 }
41 void Aidge::Operator::updateConsummerProducer(){
42 mImpl->updateConsummerProducer();
  • Just to understand, for each operator we will have to develop a function to know how to update the ConsummerProducer system ?

  • Author Maintainer

    Yes it is mandatory to do so, however we may be able to give a defualt implementation:

    
        for (IOIndex_t inputIdx = 0; static_cast<NbElts_t>(inputIdx) < mNbConsumedData.size(); ++inputIdx)
            mNbConsumedData[inputIdx]+= getNbRequiredData(inputIdx); // each input is consumed by the minimum amount for a forward pass
    
        mNbProducedData[0]+= getRequiredMemory(0, {});
    }

    Which is every input is consummed and every output is created. This can then be overloaded depending of the backend.

  • Yes I agree, a default implementation is required to avoid more work when a user wants to add a new operator

  • Please register or sign in to reply
  • Vincent Templier approved this merge request

    approved this merge request

  • Cyril Moineau mentioned in commit a3f646d2

    mentioned in commit a3f646d2

  • merged

  • Please register or sign in to reply
    Loading