foreman 7b52a80a63 P4 to Git Change 1181226 by kebai@kebai-lnx1 on 2015/08/17 16:11:30
ECR #304775 - Preparation for kernel caching feature
	1. Each device have a separate cache directory
	2. It logs caching errors, so we can debug the cache and/or detect collisions
	3. Implementeded cache size tracking, so we can evict old data when cache files are too large
	4. Added file/path access permission control on both windows and linux
	5. Have read/write file lock protection
	6. -kcache-disable flag can be used to turn on/off the caching functionality
	7. AMD_FORCE_KCACHE_TEST env variable is used for internal testing
	8. For the stage we want to cache, call getCacheEntry() followed by makeCacheEntry() if the get fails; otherwise directly return cached data.
	- After the compiler library code is refactored, getCacheEntry() and makeCacheEntry() will be wrapped into one function call, so that only one call is needed at the place we want to cache

	TO DO:
	1. Use it in the compiler library code
	- Waiting for the decision on how many stages we want to cache, i) 1-stage caching: source->ISA; or ii) 3-stage caching: source->LLVM IR, LLVM IR->IL, IL->ISA
	2. Tracking of timestamps for cache entries
	- LRU eviction when cache grows too large
	- Suggestion from Laurent: Regarding tracking timestamps for LRU eviction: Random eviction would probably perform as well as LRU and does not require timestamps.
	3. Track cache entries per application

	ReviewBoardURL = http://ocltc.amd.com/reviews/r/8194/

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/cache.cpp#3 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/cache.hpp#3 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#127 edit
2015-08-17 16:27:05 -04:00
S
Описание
No description provided
282 MiB
Languages
C++ 67.5%
C 20.6%
Python 6.6%
CMake 3.4%
Shell 0.6%
Разное 1.1%