Comments (4)
Hi @amazingyyc , Thank you for finding a bug in DET. Actually, we haven't tested the scenario before where the key has a negative value.
empty_key_sentinel
andempty_key_sentinel
are two reserved values in the hash table of DET, representing whether the slot is empty or the slot's key has been deleted. In DET, we must reserve two values forempty_key_sentinel
andempty_key_sentinel
. The method I can think of is to expose an interface allowing users to set these two values.However, the timing of the setting is a question (1. Determine during the compilation period, controlled by macro definitions; 2. Determine during the runtime, with significant changes). I need to discuss with my colleagues about how to modify this. If we come to any conclusions and changes, I will notify you.
A choice maybe help:
template <typename KeyT>
struct SentinelKey {
static KeyT EmptyKey() {
if (std::numeric_limits<KeyT>::is_signed) {
return std::numeric_limits<KeyT>::max();
} else {
return std::numeric_limits<KeyT>::max();
}
}
static KeyT ReclaimedKey() {
if (std::numeric_limits<KeyT>::is_signed) {
return std::numeric_limits<KeyT>::min();
} else {
return std::numeric_limits<KeyT>::max() - 1;
}
}
};
template <.... typename ReservedKeyT=SentinelKey<KeyT>>
class static_map {
static_map(): empty_key_(ReservedKeyT::EmptyKey()), reclaimed_key_(ReservedKeyT::ReclaimedKey())
}
from hugectr.
Hi @amazingyyc , I already fix this bug, and thank you very much to found the bugs , the fix update in next release!
from hugectr.
Hi @amazingyyc ,
Thank you for finding a bug in DET. Actually, we haven't tested the scenario before where the key has a negative value. empty_key_sentinel
and empty_key_sentinel
are two reserved values in the hash table of DET, representing whether the slot is empty or the slot's key has been deleted. In DET, we must reserve two values for empty_key_sentinel
and empty_key_sentinel
. The method I can think of is to expose an interface allowing users to set these two values.
However, the timing of the setting is a question (1. Determine during the compilation period, controlled by macro definitions; 2. Determine during the runtime, with significant changes). I need to discuss with my colleagues about how to modify this. If we come to any conclusions and changes, I will notify you.
from hugectr.
Thank you very much for your code. I had considered using this method, which is easy to modify and elegant, and it's much safer than -1/-2. However, I haven't chosen this method temporarily because user’s key are still occupied by two values without their awareness and cannot change these values. So, I will discuss with my colleagues on Friday about how to solve this issue.
from hugectr.
Related Issues (20)
- [Question] Is there a slack channel or discord server for questions and discussion ? HOT 4
- [Question] COnfiguration issues with mlcommon benchmarking HOT 1
- [Question] How to serve TF2 SOK model in Triton Inference and convert it to ONNX? HOT 1
- [Question] Difference between Embedding Training Cache and GPU Embedding Cache HOT 9
- Support for configuration issues HOT 1
- [Question] How can I pre-calculate the GPU memory required for embedding cache size? HOT 2
- [Question] nv_gpu_cache compiling problem HOT 1
- [BUG] Encountered ETC error of din model when training with multiple keyset. HOT 3
- Trouble installing hugectr_backend for Triton Server HOT 1
- [BUG] CUDNN_STATUS_MAPPING_ERROR with cudnnSetStream HOT 21
- build docker failed with 401 Unauthorized (Set Up the Development Environment With Merlin Containers) HOT 4
- [BUG]preprocess.sh 1 criteo failed with 'Schema' object has no attribute 'write' HOT 1
- [Question] Is there pipeline mechanism to help the lookup requests always be handled on device cache in HugeCTR? HOT 1
- [Question] How to dump incremental model to kafka in Release 23.12? HOT 2
- [BUG] Run sok tests error HOT 1
- [BUG] Seg Fault When Deploying TF+HPS Model with merlin-tensorflow HOT 9
- [BUG] cudaErrorIllegalAddress: an illegal memory access was encounteredThread HOT 4
- [BUG]build failed on gtest! HOT 5
- [Question] Can i read parquet data from HDFS? HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hugectr.