Merge pull request #78 from EthicalML/77_update_e2e_xamples

77 Fix end to end examples by creating tensors on separate sequence
This commit is contained in:
Alejandro Saucedo 2020-10-20 07:07:27 +01:00 committed by GitHub
commit c73ddf414d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 36 deletions

View file

@ -41,15 +41,17 @@ void KomputeModelML::train(std::vector<float> yData, std::vector<float> xIData,
{
kp::Manager mgr;
if (std::shared_ptr<kp::Sequence> sq =
mgr.getOrCreateManagedSequence("createTensors").lock()) {
{
sq->begin();
std::shared_ptr<kp::Sequence> sqTensor =
mgr.createManagedSequence().lock();
sq->record<kp::OpTensorCreate>(params);
sqTensor->begin();
sqTensor->record<kp::OpTensorCreate>(params);
sqTensor->end();
sqTensor->eval();
sq->end();
sq->eval();
std::shared_ptr<kp::Sequence> sq = mgr.createManagedSequence().lock();
// Record op algo base
sq->begin();

View file

@ -50,15 +50,15 @@ void KomputeModelMLNode::train(Array yArr, Array xIArr, Array xJArr) {
{
kp::Manager mgr;
if (std::shared_ptr<kp::Sequence> sq =
mgr.getOrCreateManagedSequence("createTensors").lock()) {
std::shared_ptr<kp::Sequence> sqTensor =
mgr.createManagedSequence().lock();
sq->begin();
sqTensor->begin();
sqTensor->record<kp::OpTensorCreate>(params);
sqTensor->end();
sqTensor->eval();
sq->record<kp::OpTensorCreate>(params);
sq->end();
sq->eval();
std::shared_ptr<kp::Sequence> sq = mgr.createManagedSequence().lock();
// Record op algo base
sq->begin();

View file

@ -54,15 +54,16 @@ void KomputeModelML::train(Array yArr, Array xIArr, Array xJArr) {
{
kp::Manager mgr;
if (std::shared_ptr<kp::Sequence> sq =
mgr.getOrCreateManagedSequence("createTensors").lock()) {
{
std::shared_ptr<kp::Sequence> sqTensor =
mgr.createManagedSequence().lock();
sq->begin();
sqTensor->begin();
sqTensor->record<kp::OpTensorCreate>(params);
sqTensor->end();
sqTensor->eval();
sq->record<kp::OpTensorCreate>(params);
sq->end();
sq->eval();
std::shared_ptr<kp::Sequence> sq = mgr.createManagedSequence().lock();
// Record op algo base
sq->begin();

View file

@ -35,15 +35,15 @@ int main()
kp::Manager mgr;
std::weak_ptr<kp::Sequence> sqWeakPtr = mgr.getOrCreateManagedSequence("createTensors");
std::shared_ptr<kp::Sequence> sq = sqWeakPtr.lock();
std::shared_ptr<kp::Sequence> sqTensor =
mgr.createManagedSequence().lock();
sq->begin();
sqTensor->begin();
sqTensor->record<kp::OpTensorCreate>(params);
sqTensor->end();
sqTensor->eval();
sq->record<kp::OpTensorCreate>(params);
sq->end();
sq->eval();
std::shared_ptr<kp::Sequence> sq = mgr.createManagedSequence().lock();
// Record op algo base
sq->begin();

View file

@ -1310,7 +1310,8 @@ class Manager
* Create a new managed Kompute sequence so it's available within the
* manager.
*
* @param sequenceName The name for the named sequence to be created, if empty then default indexed value is used
* @param sequenceName The name for the named sequence to be created, if
* empty then default indexed value is used
* @param queueIndex The queue to use from the available queues
* @return Weak pointer to the manager owned sequence resource
*/
@ -1363,8 +1364,10 @@ class Manager
{
SPDLOG_DEBUG("Kompute Manager evalOp Default triggered");
this->mCurrentSequenceIndex++;
this->evalOp<T>(
tensors, KP_DEFAULT_SESSION + std::to_string(this->mCurrentSequenceIndex), std::forward<TArgs>(params)...);
this->evalOp<T>(tensors,
KP_DEFAULT_SESSION +
std::to_string(this->mCurrentSequenceIndex),
std::forward<TArgs>(params)...);
}
/**
@ -1406,7 +1409,8 @@ class Manager
}
/**
* Operation that evaluates operation against default sequence asynchronously.
* Operation that evaluates operation against default sequence
* asynchronously.
*
* @param tensors The tensors to be used in the operation recorded
* @param params Template parameters that will be used to initialise
@ -1414,12 +1418,14 @@ class Manager
*/
template<typename T, typename... TArgs>
void evalOpAsyncDefault(std::vector<std::shared_ptr<Tensor>> tensors,
TArgs&&... params)
TArgs&&... params)
{
SPDLOG_DEBUG("Kompute Manager evalOpAsyncDefault triggered");
this->mCurrentSequenceIndex++;
this->evalOpAsync<T>(
tensors, KP_DEFAULT_SESSION + std::to_string(this->mCurrentSequenceIndex), std::forward<TArgs>(params)...);
this->evalOpAsync<T>(tensors,
KP_DEFAULT_SESSION +
std::to_string(this->mCurrentSequenceIndex),
std::forward<TArgs>(params)...);
}
/**
@ -1430,7 +1436,8 @@ class Manager
*/
void evalOpAwait(std::string sequenceName, uint64_t waitFor = UINT64_MAX)
{
SPDLOG_DEBUG("Kompute Manager evalOpAwait triggered with sequence {}", sequenceName);
SPDLOG_DEBUG("Kompute Manager evalOpAwait triggered with sequence {}",
sequenceName);
std::unordered_map<std::string, std::shared_ptr<Sequence>>::iterator
found = this->mManagedSequences.find(sequenceName);
@ -1459,7 +1466,9 @@ class Manager
void evalOpAwaitDefault(uint64_t waitFor = UINT64_MAX)
{
SPDLOG_DEBUG("Kompute Manager evalOpAwaitDefault triggered");
this->evalOpAwait(KP_DEFAULT_SESSION + std::to_string(this->mCurrentSequenceIndex), waitFor);
this->evalOpAwait(KP_DEFAULT_SESSION +
std::to_string(this->mCurrentSequenceIndex),
waitFor);
}
/**