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 |