40 Commits (1446d1575d560d4e6a5e3cb8c34f198fdeb71786)

Author SHA1 Message Date
Constantin Fürst 322eb43cbc add flag for early abort in access if no entry is present 11 months ago
Constantin Fürst 972440d19f repair flags implementation 11 months ago
Constantin Fürst b3607329a6 add a flags-concept to cacher, add the option to select whether to handle pagefaults or not 11 months ago
Constantin Fürst 20b7820e61 implement different load balancing technique suited for smaller task sizes maybe 11 months ago
Constantin Fürst a72a26dbee remove cout/cerr output from cache and benchmark to not falsify results 11 months ago
Constantin Fürst c786d4d682 allow weak waiting which returns immediately if dsa has not yet finished 11 months ago
Constantin Fürst 053bb949ce reset cacher to cpp api implementation 11 months ago
Constantin Fürst 2f17a38ef0 select device via jobs node parameter so we can skip the numa affinity change, also properly delete jobs in destructor 11 months ago
Constantin Fürst aaaaa16e94 switch dsa cache to job api to use efficient wait 11 months ago
Constantin Fürst 140ded012a querry operation finished state in loop which could be more efficient 11 months ago
Constantin Fürst e7d10fc2d2 use hardware path instead of automatic for cache 11 months ago
Constantin Fürst bbdb2d9588 prevent another type of deadlock that could arise from destroying a CacheData instance that never had tasks assigned to it due to waiting infinitely on it 11 months ago
Constantin Fürst e9785f3f9e prevent deadlocks by setting the cache pointer to the source address in case of errors 11 months ago
Constantin Fürst fa23c6c50a improve the handler distribution and waiting on task completion for cacher 11 months ago
Constantin Fürst 7e48c96828 distribute multiple per-node locks for the cache state and allocate them on the respective numa node for fastest possible access 11 months ago
Constantin Fürst 2b635d025d add defaulted-constructor for cache which got implicitly deleted by deleting the copy constructor 11 months ago
Constantin Fürst 5578f06c80 adapt copy policy function to take data size as well and use this to only use destination nodes dsa engine for small data sizes on xeonmax 11 months ago
Constantin Fürst da38c048ca pass data size to copy policy function too 11 months ago
Constantin Fürst e4a681ac1e delete the copy-constructor for cache as copying it is undesired behaviour 11 months ago
Constantin Fürst e570a6fe69 reduce the line-count of the switch statement for dml::StatusToString by inlining return with case statements 11 months ago
Constantin Fürst 0fdf650fe4 improve the class-comments for Cache and CacheData, also free incomplete_cache_ if it has not been waited for (see comment on this) 11 months ago
Constantin Fürst 8ba716353a add Clear() function which forces flush on the entire Cache and remove non-warning/error status messages from the cacher 11 months ago
Constantin Fürst d7c5c55208 turn library into single-header mode 11 months ago
Constantin Fürst 4fa5ef6522 accept existing cache if the cached block is larger than the requested view 12 months ago
Constantin Fürst 6ab88595b7 add test for the cache-flush logic which was previously not tested 12 months ago
Constantin Fürst 7dfbed68fe handle allocation slightly different, introduce a separate function for cleaner code that does on-node memory allocation, first querry the available size and do not rely on numa_alloc_onnode to report nullptr if the size is not really available 12 months ago
Constantin Fürst 4ddd96adcb remove extra whitespace from output in main function 12 months ago
Constantin Fürst e3e17cec7b extend the main method of the small supplied test program to allow running on multiple threads 12 months ago
Constantin Fürst e5b96727cd add missing inline specifier to functions as this is header-only code 12 months ago
Constantin Fürst 9c06bd4fa9 add class-definition comments and clear some double-newlines 12 months ago
Constantin Fürst 53e05d096c add even more comments and remove an old code line that modified the reference counter of cache data from the outside 12 months ago
Constantin Fürst 52566fc13b print to cerr for bad states in the test-main 12 months ago
Constantin Fürst 46de3151a2 add a lot of comments to the code, also handle errors in the dml handlers gracefully 12 months ago
Constantin Fürst c01eafedae refactor the cacher to reduce complexity, removes the access guarantees (relaxed,immediate,...), uses the fact that other tasks will wait on atomic value change for the cache-pointer if it is nullptr to add the entry to cache structure earlier reducing cost of two threads accessing new entry at the same time, splits the offloading-cache.hpp file into two with one containing the data-class (represents a cache entry and task) and the other containing the cacher itself 12 months ago
Constantin Fürst 395d307310 fix an issue with the freeing of data in the cacher 12 months ago
Constantin Fürst f19c069b0f always perform copy from src and dst node, add another log output about the split 12 months ago
Constantin Fürst 5e30a370ce finish first stage of caching implementation and provide a rudimentary test function in the main 12 months ago
Constantin Fürst d396056230 provide first draft of implementations for the cachers functionality 12 months ago
Constantin Fürst 623366433b continue modifying the declarations for the cacher and providing some first definitions 12 months ago
Constantin Fürst f91cd3202f add project 'offloading cacher' and function declarations for the cacher in its header file 12 months ago