my MemPool

This commit is contained in:
Hieu Hoang 2015-10-28 16:11:12 +00:00
parent 77a2de1d9d
commit e225b64adf
14 changed files with 70 additions and 30 deletions

View File

@ -10,8 +10,9 @@
#include "StatefulFeatureFunction.h"
#include "System.h"
#include "PhraseTable.h"
#include "SkeletonStatelessFF.h"
#include "SkeletonStatefulFF.h"
#include "PhraseTable.h"
using namespace std;
@ -83,7 +84,8 @@ FeatureFunction *FeatureFunctions::Create(const std::string &line)
ret = new PhraseTable(m_ffStartInd, line);
}
else {
ret = new SkeletonStatefulFF(m_ffStartInd, line);
//ret = new SkeletonStatefulFF(m_ffStartInd, line);
ret = new SkeletonStatelessFF(m_ffStartInd, line);
}
m_ffStartInd += ret->GetNumScores();

View File

@ -21,7 +21,7 @@ Hypothesis::Hypothesis(Manager &mgr,
,m_range(range)
,m_prevHypo(NULL)
{
util::Pool &pool = m_mgr.GetPool();
MemPool &pool = m_mgr.GetPool();
size_t numStatefulFFs = m_mgr.GetSystem().GetFeatureFunctions().GetStatefulFeatureFunctions().size();
m_ffStates = (Moses::FFState **) pool.Allocate(sizeof(Moses::FFState*) * numStatefulFFs);
@ -39,7 +39,7 @@ Hypothesis::Hypothesis(const Hypothesis &prevHypo,
,m_range(pathRange)
,m_prevHypo(&prevHypo)
{
util::Pool &pool = m_mgr.GetPool();
MemPool &pool = m_mgr.GetPool();
size_t numStatefulFFs = m_mgr.GetSystem().GetFeatureFunctions().GetStatefulFeatureFunctions().size();
m_ffStates = (Moses::FFState **) pool.Allocate(sizeof(Moses::FFState*) * numStatefulFFs);

View File

@ -19,6 +19,7 @@ import path ;
Scores.cpp
SearchNormal.cpp
SkeletonStatefulFF.cpp
SkeletonStatelessFF.cpp
Stack.cpp
StatefulFeatureFunction.cpp
StatelessFeatureFunction.cpp

View File

@ -14,7 +14,7 @@
#include "Stack.h"
#include "TargetPhrase.h"
#include "moses/Bitmaps.h"
#include "util/pool.hh"
#include "MemPool.h"
class System;
class Phrase;
@ -25,7 +25,7 @@ public:
Manager(System &system, const std::string &inputStr);
virtual ~Manager();
util::Pool &GetPool()
MemPool &GetPool()
{ return m_pool; }
const System &GetSystem() const
@ -41,7 +41,7 @@ public:
void Decode();
protected:
util::Pool &m_pool;
MemPool &m_pool;
const System &m_system;
Phrase *m_input;

View File

@ -8,11 +8,11 @@
#include "Phrase.h"
#include "Word.h"
#include "moses/Util.h"
#include "util/pool.hh"
#include "MemPool.h"
using namespace std;
Phrase *Phrase::CreateFromString(util::Pool &pool, Moses::FactorCollection &vocab, const std::string &str)
Phrase *Phrase::CreateFromString(MemPool &pool, Moses::FactorCollection &vocab, const std::string &str)
{
vector<string> toks = Moses::Tokenize(str);
size_t size = toks.size();
@ -32,7 +32,7 @@ void Phrase::CreateFromString(Moses::FactorCollection &vocab, const std::vector<
}
}
Phrase::Phrase(util::Pool &pool, size_t size)
Phrase::Phrase(MemPool &pool, size_t size)
:m_size(size)
{
m_words = new (pool.Allocate<Word>(size)) Word[size];

View File

@ -11,7 +11,7 @@
#include <string>
#include <iostream>
#include "Word.h"
#include "util/pool.hh"
#include "MemPool.h"
#include "moses/FactorCollection.h"
class PhraseBase
@ -27,9 +27,9 @@ class Phrase : public PhraseBase
{
friend std::ostream& operator<<(std::ostream &, const Phrase &);
public:
static Phrase *CreateFromString(util::Pool &pool, Moses::FactorCollection &vocab, const std::string &str);
static Phrase *CreateFromString(MemPool &pool, Moses::FactorCollection &vocab, const std::string &str);
Phrase(util::Pool &pool, size_t size);
Phrase(MemPool &pool, size_t size);
virtual ~Phrase();
const Word& operator[](size_t pos) const {

View File

@ -82,7 +82,7 @@ void PhraseTable::Load(System &system)
Moses::FactorCollection &vocab = system.GetVocab();
util::Pool tmpPool;
MemPool tmpPool;
vector<string> toks;
Moses::InputFileStream strme(m_path);
string line;

View File

@ -17,14 +17,14 @@
using namespace std;
Scores::Scores(util::Pool &pool, size_t numScores)
Scores::Scores(MemPool &pool, size_t numScores)
:m_total(0)
{
m_scores = new (pool.Allocate<SCORE>(numScores)) SCORE[numScores];
Init<SCORE>(m_scores, numScores, 0);
}
Scores::Scores(util::Pool &pool, size_t numScores, const Scores &origScores)
Scores::Scores(MemPool &pool, size_t numScores, const Scores &origScores)
:m_total(origScores.m_total)
{
m_scores = new (pool.Allocate<SCORE>(numScores)) SCORE[numScores];

View File

@ -9,7 +9,7 @@
#include <iostream>
#include <string>
#include "TypeDef.h"
#include "util/pool.hh"
#include "MemPool.h"
class FeatureFunction;
class System;
@ -17,8 +17,8 @@ class System;
class Scores {
friend std::ostream& operator<<(std::ostream &, const Scores &);
public:
Scores(util::Pool &pool, size_t numScores);
Scores(util::Pool &pool, size_t numScores, const Scores &origScores);
Scores(MemPool &pool, size_t numScores);
Scores(MemPool &pool, size_t numScores, const Scores &origScores);
virtual ~Scores();
SCORE GetTotalScore() const

View File

@ -0,0 +1,20 @@
/*
* SkeletonStatefulFF.cpp
*
* Created on: 27 Oct 2015
* Author: hieu
*/
#include "SkeletonStatelessFF.h"
SkeletonStatelessFF::SkeletonStatelessFF(size_t startInd, const std::string &line)
:StatelessFeatureFunction(startInd, line)
{
// TODO Auto-generated constructor stub
}
SkeletonStatelessFF::~SkeletonStatelessFF() {
// TODO Auto-generated destructor stub
}

View File

@ -0,0 +1,17 @@
/*
* SkeletonStatefulFF.h
*
* Created on: 27 Oct 2015
* Author: hieu
*/
#pragma once
#include "StatelessFeatureFunction.h"
class SkeletonStatelessFF : public StatelessFeatureFunction
{
public:
SkeletonStatelessFF(size_t startInd, const std::string &line);
virtual ~SkeletonStatelessFF();
};

View File

@ -9,7 +9,7 @@
#include <vector>
#include "FeatureFunctions.h"
#include "Weights.h"
#include "util/pool.hh"
#include "MemPool.h"
#include "moses/FactorCollection.h"
#include "moses/Parameter.h"
@ -28,10 +28,10 @@ public:
const FeatureFunctions &GetFeatureFunctions() const
{ return m_featureFunctions; }
util::Pool &GetSystemPool()
MemPool &GetSystemPool()
{ return m_systemPool; }
util::Pool &GetManagerPool()
MemPool &GetManagerPool()
{ return m_managerPool; }
Moses::FactorCollection &GetVocab() const
@ -44,8 +44,8 @@ protected:
const Moses::Parameter &m_params;
mutable Moses::FactorCollection m_vocab;
util::Pool m_systemPool;
util::Pool m_managerPool;
MemPool m_systemPool;
MemPool m_managerPool;
FeatureFunctions m_featureFunctions;
Weights m_weights;

View File

@ -10,11 +10,11 @@
#include "Scores.h"
#include "Manager.h"
#include "System.h"
#include "util/pool.hh"
#include "MemPool.h"
using namespace std;
TargetPhrase *TargetPhrase::CreateFromString(util::Pool &pool, System &system, const std::string &str)
TargetPhrase *TargetPhrase::CreateFromString(MemPool &pool, System &system, const std::string &str)
{
Moses::FactorCollection &vocab = system.GetVocab();
@ -26,7 +26,7 @@ TargetPhrase *TargetPhrase::CreateFromString(util::Pool &pool, System &system, c
return ret;
}
TargetPhrase::TargetPhrase(util::Pool &pool, System &system, size_t size)
TargetPhrase::TargetPhrase(MemPool &pool, System &system, size_t size)
:Phrase(pool, size)
{
m_scores = new (pool.Allocate<Scores>()) Scores(pool, system.GetFeatureFunctions().GetNumScores());

View File

@ -9,7 +9,7 @@
#include <iostream>
#include "Phrase.h"
#include "util/pool.hh"
#include "MemPool.h"
class Scores;
class Manager;
@ -19,8 +19,8 @@ class TargetPhrase : public Phrase
{
friend std::ostream& operator<<(std::ostream &, const TargetPhrase &);
public:
static TargetPhrase *CreateFromString(util::Pool &pool, System &system, const std::string &str);
TargetPhrase(util::Pool &pool, System &system, size_t size);
static TargetPhrase *CreateFromString(MemPool &pool, System &system, const std::string &str);
TargetPhrase(MemPool &pool, System &system, size_t size);
virtual ~TargetPhrase();
Scores &GetScores()