Class ComputationCache is used inside class CachingOptimizingCompiler to cache previously computed computations. More...
#include <nnet-optimize-utils.h>
Public Member Functions | |
ComputationCache (int32 cache_capacity) | |
void | Read (std::istream &is, bool binary) |
void | Write (std::ostream &os, bool binary) const |
std::shared_ptr< const NnetComputation > | Find (const ComputationRequest &request) |
std::shared_ptr< const NnetComputation > | Insert (const ComputationRequest &request, const NnetComputation *computation) |
~ComputationCache () | |
void | Check (const Nnet &nnet) const |
Private Types | |
typedef std::list< const ComputationRequest * > | AqType |
typedef unordered_map< const ComputationRequest *, std::pair< std::shared_ptr< const NnetComputation >, AqType::iterator >, ComputationRequestHasher, ComputationRequestPtrEqual > | CacheType |
Private Attributes | |
std::mutex | mutex_ |
int32 | cache_capacity_ |
AqType | access_queue_ |
CacheType | computation_cache_ |
Class ComputationCache is used inside class CachingOptimizingCompiler to cache previously computed computations.
The code was moved from class CachingOptimizingCompiler to this separate class for clarity when adding thread-safety functionality. It's OK to call Find() and Insert() from multiple threads without additional synchronization.
Definition at line 625 of file nnet-optimize-utils.h.
|
private |
Definition at line 668 of file nnet-optimize-utils.h.
|
private |
Definition at line 677 of file nnet-optimize-utils.h.
ComputationCache | ( | int32 | cache_capacity | ) |
Definition at line 4969 of file nnet-optimize-utils.cc.
References KALDI_ASSERT.
~ComputationCache | ( | ) |
Definition at line 5062 of file nnet-optimize-utils.cc.
References ComputationCache::computation_cache_.
void Check | ( | const Nnet & | nnet | ) | const |
Definition at line 5037 of file nnet-optimize-utils.cc.
References ComputationChecker::Check(), and ComputationCache::computation_cache_.
Referenced by CachingOptimizingCompiler::ReadCache().
std::shared_ptr< const NnetComputation > Find | ( | const ComputationRequest & | request | ) |
Definition at line 4951 of file nnet-optimize-utils.cc.
Referenced by CachingOptimizingCompiler::CompileInternal().
std::shared_ptr< const NnetComputation > Insert | ( | const ComputationRequest & | request, |
const NnetComputation * | computation | ||
) |
Definition at line 4974 of file nnet-optimize-utils.cc.
References ComputationCache::access_queue_, ComputationCache::cache_capacity_, ComputationCache::computation_cache_, KALDI_ASSERT, and ComputationCache::mutex_.
Referenced by CachingOptimizingCompiler::CompileInternal(), and ComputationCache::Read().
void Read | ( | std::istream & | is, |
bool | binary | ||
) |
Definition at line 5018 of file nnet-optimize-utils.cc.
References ComputationCache::access_queue_, ComputationCache::computation_cache_, kaldi::nnet3::ExpectToken(), ComputationCache::Insert(), KALDI_ASSERT, kaldi::nnet2::NnetComputation(), ComputationRequest::Read(), NnetComputation::Read(), and kaldi::ReadBasicType().
Referenced by CachingOptimizingCompiler::ReadCache().
void Write | ( | std::ostream & | os, |
bool | binary | ||
) | const |
Definition at line 5051 of file nnet-optimize-utils.cc.
References ComputationCache::computation_cache_, kaldi::WriteBasicType(), and kaldi::WriteToken().
Referenced by CachingOptimizingCompiler::WriteCache().
|
private |
Definition at line 669 of file nnet-optimize-utils.h.
Referenced by ComputationCache::Insert(), and ComputationCache::Read().
|
private |
Definition at line 660 of file nnet-optimize-utils.h.
Referenced by ComputationCache::Insert().
|
private |
Definition at line 678 of file nnet-optimize-utils.h.
Referenced by ComputationCache::Check(), ComputationCache::Insert(), ComputationCache::Read(), ComputationCache::Write(), and ComputationCache::~ComputationCache().
|
private |
Definition at line 658 of file nnet-optimize-utils.h.
Referenced by ComputationCache::Insert().