4b6f2324d0c61bd0182b3d71dc5f4e34686695c3
ECR #304775 - Bug 10752 kernel caching feature (AMDIL and HSAIL path) 1. For the stage we want to cache, call getCacheEntry() followed by makeCacheEntry() if the get fails; otherwise directly return cached data. a. Each device have a separate cache directory b. It logs caching errors, so we can debug the cache and/or detect collisions 2. Implementeded cache size tracking, so we can evict old data when cache files are too large 3. Added file/path access permission control on both windows and linux 4. Have read/write file lock protection 5. -kcache-disable flag can be used to turn on/off the caching functionality 6. AMD_FORCE_KCACHE_TEST env variable is used for internal testing TO DO: 1. Tracking of timestamps for cache entries -LRU eviction when cache grows too large 2. Track cache entries per application Affected files ... ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/cache.cpp#1 add ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/cache.hpp#1 add ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend.cpp#34 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/frontend_clang.cpp#20 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#68 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/amdil_be.cpp#43 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/hsail_be.cpp#42 edit ... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#124 edit ... //depot/stg/opencl/drivers/opencl/tests/kcache/Makefile#1 add ... //depot/stg/opencl/drivers/opencl/tests/kcache/build/Makefile#1 add ... //depot/stg/opencl/drivers/opencl/tests/kcache/build/Makefile.kcache#1 add ... //depot/stg/opencl/drivers/opencl/tests/kcache/kCacheTest_std.txt#1 add ... //depot/stg/opencl/drivers/opencl/tests/kcache/kernel.cl#1 add ... //depot/stg/opencl/drivers/opencl/tests/kcache/main.cpp#1 add
Description
No description provided
Languages
C++
67.5%
C
20.6%
Python
6.6%
CMake
3.4%
Shell
0.6%
Other
1.1%