Clearer array_expression with hopefully lower overhead.

Also removed pyc's
This commit is contained in:
Philippe Tillet
2015-01-31 22:01:48 -05:00
parent 13ec84fbda
commit d29f1252ad
36 changed files with 566 additions and 572 deletions

Binary file not shown.

View File

@@ -99,9 +99,9 @@ class GeneticOperators(object):
bincode = bincode + [str(random.randint(0,1)) for i in range(x)]
parameters = self.decode(bincode)
template = self.Template(*parameters)
symbolic_expressions = atd.symbolic_expression_container(self.symbolic)
registers_usage = template.registers_usage(symbolic_expressions)/4
lmem_usage = template.lmem_usage(symbolic_expressions)
array_expressions = atd.array_expression_container(self.symbolic)
registers_usage = template.registers_usage(array_expressions)/4
lmem_usage = template.lmem_usage(array_expressions)
local_size = parameters[1]*parameters[3]
occupancy_record = misc_tools.OccupancyRecord(self.device, local_size, lmem_usage, registers_usage)
if not misc_tools.skip(template, self.symbolic):

Binary file not shown.

View File

@@ -197,21 +197,21 @@ class OccupancyRecord:
def skip(template, symbolic):
device = symbolic.context.queues[0].device
symbolic_expressions = atd.symbolic_expression_container(symbolic)
registers_usage = template.registers_usage(symbolic_expressions)/4
lmem_usage = template.lmem_usage(symbolic_expressions)
array_expressions = atd.array_expression_container(symbolic)
registers_usage = template.registers_usage(array_expressions)/4
lmem_usage = template.lmem_usage(array_expressions)
local_size = template.local_size_0*template.local_size_1
occupancy_record = OccupancyRecord(device, local_size, lmem_usage, registers_usage)
if template.check_invalid(symbolic_expressions, device) or occupancy_record.occupancy < 15:
if template.check_invalid(array_expressions, device) or occupancy_record.occupancy < 15:
return True
return False
def benchmark(template, symbolic):
queue = symbolic.context.queues[0]
device = queue.device
symbolic_expressions = atd.symbolic_expression_container(symbolic)
registers_usage = template.registers_usage(symbolic_expressions)/4
lmem_usage = template.lmem_usage(symbolic_expressions)
array_expressions = atd.array_expression_container(symbolic)
registers_usage = template.registers_usage(array_expressions)/4
lmem_usage = template.lmem_usage(array_expressions)
local_size = template.local_size_0*template.local_size_1
occupancy_record = OccupancyRecord(device, local_size, lmem_usage, registers_usage)
if occupancy_record.occupancy < 15 :

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -31,6 +31,6 @@ if retune=='y':
print '----------------'
opts += ['--blas3-size'] + [add_input('BLAS3 sizes (M,N,K)', '1024,1024,1024').split(',')]
print '----------------'
subprocess.call(["${CMAKE_BINARY_DIR}/python/autotune/dist/autotune", "tune"] + opts)
subprocess.call(["${CMAKE_BINARY_DIR}/python/autotune/dist/autotune", "tune"] + opts +['--json', 'tmp.json'])

View File

@@ -153,16 +153,6 @@ void export_core()
;
}
void export_symbolic()
{
bp::class_<atd::symbolic_expressions_container>
("symbolic_expression_container", bp::init<atd::symbolic_expression const &>())
;
bp::class_<atd::symbolic_expression>("symbolic_expression", bp::no_init)
.add_property("context", bp::make_function(&atd::symbolic_expression::context, bp::return_internal_reference<>()))
;
}
namespace detail
{
@@ -487,7 +477,11 @@ void export_array()
.def(bp::self OP bp::self)\
ADD_SCALAR_HANDLING(OP)
bp::class_<atd::array_expression, bp::bases<atd::symbolic_expression> >("array_expression", bp::no_init)
bp::class_<atd::array_expressions_container>
("array_expression_container", bp::init<atd::array_expression const &>())
;
bp::class_<atd::array_expression >("array_expression", bp::no_init)
ADD_ARRAY_OPERATOR(+)
ADD_ARRAY_OPERATOR(-)
ADD_ARRAY_OPERATOR(*)
@@ -498,6 +492,7 @@ void export_array()
ADD_ARRAY_OPERATOR(<=)
ADD_ARRAY_OPERATOR(==)
ADD_ARRAY_OPERATOR(!=)
.add_property("context", bp::make_function(&atd::array_expression::context, bp::return_internal_reference<>()))
.def(bp::self_ns::abs(bp::self))
// .def(bp::self_ns::pow(bp::self))
;
@@ -657,6 +652,5 @@ BOOST_PYTHON_MODULE(_atidlas)
export_core();
export_cl();
export_model();
export_symbolic();
export_array();
}