removing C++11 interface
This commit is contained in:
@@ -143,7 +143,7 @@ def do_tuning(args):
|
||||
A = atd.empty(sizes, datatype, context=context)
|
||||
C = atd.empty(sizes, datatype, context=context)
|
||||
return execute(A + C, sizes, Template, parameters, fname)
|
||||
tune(execution_handler, 100, 5000, 2, (),'log', 'log')
|
||||
tune(execution_handler, 64, 5000, 2, (),'log', 'log')
|
||||
#Row-wise dot
|
||||
if operation=='gemv':
|
||||
for A_trans in args.gemv_layouts:
|
||||
@@ -152,7 +152,7 @@ def do_tuning(args):
|
||||
x = atd.empty(sizes[1], datatype, context=context)
|
||||
LHS = A if A_trans=='N' else A.T
|
||||
return execute(atd.dot(LHS, x), sizes, Template[A_trans], parameters, fname)
|
||||
tune(execution_handler, 100, 5000, 2, (A_trans,),'log', 'log')
|
||||
tune(execution_handler, 64, 6000, 2, (A_trans,),'log', 'log')
|
||||
#Matrix Product
|
||||
if operation=='gemm':
|
||||
for L in args.gemm_layouts:
|
||||
@@ -194,7 +194,7 @@ class ArgumentsHandler:
|
||||
|
||||
full_parser = tune_subparsers.add_parser('full', help = 'Tune each operation for randomly chosen sizes')
|
||||
full_parser.add_argument("--build-model", default=True, type=bool)
|
||||
full_parser.add_argument("--sample-size", default=30, type=int)
|
||||
full_parser.add_argument("--sample-size", default=60, type=int)
|
||||
|
||||
args = parser.parse_args()
|
||||
self.__dict__ = args.__dict__.copy()
|
||||
|
@@ -218,11 +218,16 @@ def benchmark(template, symbolic):
|
||||
raise ValueError("Template has too low occupancy")
|
||||
else:
|
||||
queue.models[template, atd.float32] = atd.model(template, queue)
|
||||
x = atd.array(symbolic)
|
||||
atd.synchronize(symbolic.context)
|
||||
x, events, cache = atd.flush(symbolic)
|
||||
atd.synchronize(symbolic.context)
|
||||
return 1e-9*sum([e.end - e.start for e in events])
|
||||
timings = []
|
||||
current_time = 0
|
||||
while current_time < 1e-3:
|
||||
x, events, cache = atd.flush(symbolic)
|
||||
atd.synchronize(symbolic.context)
|
||||
timings.append(1e-9*sum([e.end - e.start for e in events]))
|
||||
current_time = current_time + timings[-1]
|
||||
return np.median(timings)
|
||||
|
||||
|
||||
def sanitize_string(string, keep_chars = ['_']):
|
||||
|
@@ -193,7 +193,7 @@ namespace boost
|
||||
|
||||
#if !defined(BOOST_NO_CXX11_SMART_PTR)
|
||||
template <typename T>
|
||||
inline std::size_t hash_value(std::shared_ptr<T> const& x) {
|
||||
inline std::size_t hash_value(tools::shared_ptr<T> const& x) {
|
||||
return boost::hash_value(x.get());
|
||||
}
|
||||
|
||||
|
@@ -36,7 +36,7 @@ template<class T> T * get_pointer( std::unique_ptr<T> const& p )
|
||||
return p.get();
|
||||
}
|
||||
|
||||
template<class T> T * get_pointer( std::shared_ptr<T> const& p )
|
||||
template<class T> T * get_pointer( tools::shared_ptr<T> const& p )
|
||||
{
|
||||
return p.get();
|
||||
}
|
||||
|
@@ -315,15 +315,14 @@ namespace detail
|
||||
boost::shared_ptr<cl::Context> make_context(cl::Device const & dev)
|
||||
{ return boost::shared_ptr<cl::Context>(new cl::Context(std::vector<cl::Device>(1, dev))); }
|
||||
|
||||
bp::tuple flush(atd::array_expression const & expression, unsigned int queue_id, bp::list dependencies, int label, std::string const & program_name, bool force_recompile)
|
||||
bp::tuple flush(atd::array_expression const & expression, unsigned int queue_id, bp::list dependencies, bool tune, int label, std::string const & program_name, bool force_recompile)
|
||||
{
|
||||
std::list<cl::Event> events;
|
||||
atd::operation_cache cache;
|
||||
std::vector<cl::Event> cdependencies = to_vector<cl::Event>(dependencies);
|
||||
boost::shared_ptr<atd::array> parray(new atd::array(atd::control(expression, atd::execution_options_type(queue_id, &events, &cache, &cdependencies),
|
||||
atd::dispatcher_options_type(label), atd::compilation_options_type(program_name, force_recompile))));
|
||||
|
||||
return bp::make_tuple(*parray, to_list(events.begin(), events.end()), cache);
|
||||
atd::dispatcher_options_type(tune, label), atd::compilation_options_type(program_name, force_recompile))));
|
||||
return bp::make_tuple(parray, to_list(events.begin(), events.end()), cache);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -402,7 +401,7 @@ void export_cl()
|
||||
bp::def("synchronize", &atd::cl_ext::synchronize);
|
||||
bp::def("get_platforms", &detail::get_platforms);
|
||||
|
||||
bp::def("flush", &detail::flush, (bp::arg("expression"), bp::arg("queue_id") = 0, bp::arg("dependencies")=bp::list(), bp::arg("label")=-1, bp::arg("program_name")="", bp::arg("recompile") = false));
|
||||
bp::def("flush", &detail::flush, (bp::arg("expression"), bp::arg("queue_id") = 0, bp::arg("dependencies")=bp::list(), bp::arg("tune") = false, bp::arg("label")=-1, bp::arg("program_name")="", bp::arg("recompile") = false));
|
||||
|
||||
bp::class_<state_type>("state_type")
|
||||
.def_readwrite("queue_properties",&atd::cl_ext::queue_properties)
|
||||
|
Reference in New Issue
Block a user