aboutsummaryrefslogtreecommitdiff
path: root/examples/cl_cache.cpp
diff options
context:
space:
mode:
authorPablo Tello <pablo.tello@arm.com>2019-07-11 16:50:37 +0100
committerPablo Marquez <pablo.tello@arm.com>2019-07-18 14:55:49 +0000
commitdb9116ff15170ff734aad0300b46c48abc2a3b7b (patch)
tree5846ab774aa5e6725e9144841b745e1ad2641583 /examples/cl_cache.cpp
parent06be6f8d2a316a307fa623150f8adf8f9c3416c5 (diff)
downloadComputeLibrary-db9116ff15170ff734aad0300b46c48abc2a3b7b.tar.gz
COMPMID-2443: CL example use program cache by default.
Change-Id: I9db5cf4ce98e86f7488f4041f0d0247d3d0cd663 Signed-off-by: Pablo Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/c/1528 Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Reviewed-by: VidhyaSudhan Loganathan <vidhyasudhan.loganathan@arm.com>
Diffstat (limited to 'examples/cl_cache.cpp')
-rw-r--r--examples/cl_cache.cpp63
1 files changed, 0 insertions, 63 deletions
diff --git a/examples/cl_cache.cpp b/examples/cl_cache.cpp
index 87a3058956..998c4682ba 100644
--- a/examples/cl_cache.cpp
+++ b/examples/cl_cache.cpp
@@ -35,69 +35,6 @@ using namespace utils;
namespace
{
-/** This function loads prebuilt opencl kernels from a file
- *
- * @param[in] filename Name of the file to be used to load the kernels
- */
-void restore_program_cache_from_file(const std::string &filename = "cache.bin")
-{
- std::cout << "Loading kernels from file " << filename << std::endl;
- std::ifstream cache_file(filename, std::ios::binary);
- if(cache_file.is_open())
- {
- while(!cache_file.eof())
- {
- size_t name_len = 0;
- size_t binary_len = 0;
- cache_file.read(reinterpret_cast<char *>(&name_len), sizeof(size_t));
- cache_file.read(reinterpret_cast<char *>(&binary_len), sizeof(size_t));
- if(name_len == 0 || binary_len == 0)
- {
- break;
- }
- std::vector<char> tmp(name_len);
- std::vector<unsigned char> binary(binary_len);
- std::string name;
- cache_file.read(tmp.data(), name_len);
- name.assign(tmp.data(), name_len);
- tmp.resize(binary_len);
- cache_file.read(reinterpret_cast<char *>(binary.data()), binary_len);
- cl::Context context = arm_compute::CLScheduler::get().context();
- cl::Program::Binaries binaries{ binary };
- std::vector<cl::Device> devices = context.getInfo<CL_CONTEXT_DEVICES>();
- cl::Program program(context, devices, binaries);
- program.build();
- CLKernelLibrary::get().add_built_program(name, program);
- }
- cache_file.close();
- }
-}
-
-/** This function saves opencl kernels library to a file
- *
- * @param[in] filename Name of the file to be used to save the library
- */
-void save_program_cache_to_file(const std::string &filename = "cache.bin")
-{
- std::cout << "Saving opencl kernels to " << filename << std::endl;
- std::ofstream cache_file(filename, std::ios::binary);
- if(cache_file.is_open())
- {
- for(const auto &it : CLKernelLibrary::get().get_built_programs())
- {
- std::vector<std::vector<unsigned char>> binaries = it.second.getInfo<CL_PROGRAM_BINARIES>();
- ARM_COMPUTE_ERROR_ON(binaries.size() != 1);
- const std::string kernel_name = it.first;
- size_t kernel_name_size = kernel_name.length();
- size_t binary_size = binaries[0].size();
- cache_file.write(reinterpret_cast<char *>(&kernel_name_size), sizeof(size_t));
- cache_file.write(reinterpret_cast<char *>(&binary_size), sizeof(size_t));
- cache_file.write(kernel_name.c_str(), kernel_name_size);
- cache_file.write(reinterpret_cast<const char *>(binaries[0].data()), binaries[0].size());
- }
- cache_file.close();
- }
-}
} // namespace
class CLCacheExample : public Example