def main(): setDefaultSettings() #select_excecution_environment() if Settings.OPENCL == 1: [ctx, queue] = init_OpenCL() #test() [scene, collimators, leaf_array] = init_scene(Settings.PIECES) settingsList = define_settings(scene, leaf_array) oclu = OpenCLUtility.OpenCLUtility() if Settings.AUTOTUNE == 1: list = [] list.append(Parameter("LINE_TRIANGLE_INTERSECTION_ALGORITHM", [2], True)) list.append(Parameter("WG_LIGHT_SAMPLING_X", [1,2,4,8,16,32,64,128], False)) list.append(Parameter("WG_LIGHT_SAMPLING_Y", [1,2,4,8,16,32,64,128], False)) list.append(Parameter("WG_LIGHT_SAMPLING_Z", [1,2,4,8,16], False)) list.append(Parameter("PIECES", [1,2,4,10,20], False)) list.append(Parameter("RAY_AS", [0], True)) list.append(Parameter("LEAF_AS", [1], True)) list.append(Parameter("LEAF_DATA_AS", [2], True)) list.append(Parameter("SCENE_AS", [2], True)) list.append(Parameter("DEPTH_FIRST", [0], True)) fluence_data = numpy.zeros(shape=(Settings.FLX,Settings.FLY), dtype=numpy.float32) intensities = numpy.zeros(shape=(Settings.FLX,Settings.FLY,Settings.LSAMPLESSQR), dtype=numpy.float32) at = Autotune(ParameterSet(list), run_OpenCL, (oclu, ctx, queue, scene, leaf_array, fluence_data, intensities, settingsList)) at.findOptimizationParameters() #print at.getTable() at.saveCSV() [fluence_data_OpenCL, total_time_OpenCL, calculation_time_OpenCL, samplesPerSecond_OpenCL] = run_OpenCL(oclu, ctx, queue, scene, leaf_array, fluence_data, intensities, settingsList, at.best_parameters) else: fluence_data = numpy.zeros(shape=(Settings.FLX,Settings.FLY), dtype=numpy.float32) intensities = numpy.zeros(shape=(Settings.FLX,Settings.FLY,Settings.LSAMPLESSQR), dtype=numpy.float32) [fluence_data_OpenCL, total_time_OpenCL, calculation_time_OpenCL, samplesPerSecond_OpenCL] = run_OpenCL(oclu, ctx, queue, scene, leaf_array, fluence_data, intensities, settingsList, Settings.getDefaultOptimizationParameterList()) if Settings.SHOW_PLOT == 1: if Settings.PYTHON == 1: show_plot(scene, fluence_data_Python, time_Python, samplesPerSecond_Python) if Settings.OPENCL == 1: show_plot(scene, fluence_data_OpenCL, total_time_OpenCL, samplesPerSecond_OpenCL) if Settings.SHOW_3D_SCENE == 1: show_3D_scene(scene, leaf_array, collimators)