Added computing and reporting LUT mapping cache size
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
This commit is contained in:
parent
c95aa86a8e
commit
ccf2bb123c
@ -149,6 +149,21 @@ bool SiteLutMappingResult::apply (const SiteInformation& siteInfo) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t SiteLutMappingResult::getSizeInBytes () const {
|
||||||
|
|
||||||
|
size_t size = 0;
|
||||||
|
|
||||||
|
size += sizeof(SiteLutMappingResult);
|
||||||
|
size += blockedWires.size() * sizeof(std::pair<IdString, IdString>);
|
||||||
|
|
||||||
|
for (const auto& cell : cells) {
|
||||||
|
size += sizeof(Cell);
|
||||||
|
size += cell.belPins.size() * sizeof(decltype(cell.belPins)::value_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
void SiteLutMappingCache::add (const SiteLutMappingKey& key,
|
void SiteLutMappingCache::add (const SiteLutMappingKey& key,
|
||||||
|
@ -65,6 +65,10 @@ struct SiteLutMappingKey {
|
|||||||
|
|
||||||
static SiteLutMappingKey create (const SiteInformation& siteInfo);
|
static SiteLutMappingKey create (const SiteInformation& siteInfo);
|
||||||
|
|
||||||
|
size_t getSizeInBytes () const {
|
||||||
|
return sizeof(SiteLutMappingKey);
|
||||||
|
}
|
||||||
|
|
||||||
void computeHash () {
|
void computeHash () {
|
||||||
hash_ = mkhash(0, tileType);
|
hash_ = mkhash(0, tileType);
|
||||||
hash_ = mkhash(hash_, siteType);
|
hash_ = mkhash(hash_, siteType);
|
||||||
@ -128,6 +132,9 @@ struct SiteLutMappingResult {
|
|||||||
|
|
||||||
// Applies the mapping result to the site
|
// Applies the mapping result to the site
|
||||||
bool apply (const SiteInformation& siteInfo);
|
bool apply (const SiteInformation& siteInfo);
|
||||||
|
|
||||||
|
// Returns size in bytes
|
||||||
|
size_t getSizeInBytes () const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Site LUT mapping cache object
|
// Site LUT mapping cache object
|
||||||
@ -144,6 +151,21 @@ public:
|
|||||||
return (float)numMisses / (float)(numHits + numMisses);
|
return (float)numMisses / (float)(numHits + numMisses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t getCount () const {
|
||||||
|
return cache_.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t getSizeMB () const {
|
||||||
|
size_t size = 0;
|
||||||
|
for (const auto& it : cache_) {
|
||||||
|
size += it.first.getSizeInBytes();
|
||||||
|
size += it.second.getSizeInBytes();
|
||||||
|
}
|
||||||
|
|
||||||
|
const size_t MB = 1024L * 1024L;
|
||||||
|
return (size + MB - 1) / MB; // Round up to megabytes
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
dict<SiteLutMappingKey, SiteLutMappingResult> cache_;
|
dict<SiteLutMappingKey, SiteLutMappingResult> cache_;
|
||||||
|
Loading…
Reference in New Issue
Block a user