Implemented simple operation cache

This commit is contained in:
Philippe Tillet
2015-02-01 23:56:05 -05:00
parent 535706f35a
commit 2afc574724
17 changed files with 90 additions and 57 deletions

View File

@@ -104,10 +104,8 @@ std::vector<int_t> maxpy::input_sizes(expressions_tuple const & expressions)
return tools::make_vector<int_t>() << size.first << size.second;
}
void maxpy::enqueue(cl::CommandQueue & queue,
std::vector<cl_ext::lazy_compiler> & programs,
unsigned int label,
expressions_tuple const & expressions)
void maxpy::enqueue(cl::CommandQueue & queue, std::vector<cl_ext::lazy_compiler> & programs,
unsigned int label, expressions_tuple const & expressions, operation_cache * cache)
{
char kname[10];
fill_kernel_name(kname, label, "d");
@@ -121,6 +119,9 @@ void maxpy::enqueue(cl::CommandQueue & queue,
kernel.setArg(current_arg++, cl_uint(MN[1]));
set_arguments(expressions, kernel, current_arg);
queue.enqueueNDRangeKernel(kernel, cl::NullRange, grange, lrange);
if(cache)
cache->push_back(queue, kernel, cl::NullRange, grange, lrange);
}
template class base_impl<maxpy, maxpy_parameters>;