Skip to content
Snippets Groups Projects
Commit 64d1e44f authored by Nordine Feddal's avatar Nordine Feddal
Browse files

check idle time

parent e2584478
No related merge requests found
......@@ -33,6 +33,14 @@ def generate_main_unroll_step():
currTask = list_gpu_tasks_object[relatedTask]
unroll +="\t{kernel_name}<<<{block},{thread},{smem},{stream}>>>({params});\n".format(kernel_name=currTask.name, block = currTask.blocks, thread = currTask.threads, smem = currTask.smem,stream = "stream_{no}".format(no=job),params="test")
unroll += "\tcudaDeviceSynchronize();\n\n"
if i != len(list_gpusched_step_object) - 1:
unroll += "\tstep_end = high_resolution_clock::now();\n"
unroll += "\telapsed_time = step_end - base;\n"
unroll += "\telapsed_time_ms = duration_cast<ms>(elasped_time);\n"
unroll += "\tidle_time = {next_step_min_time} - elapsed_time_ms;\n".format(next_step_min_time=list_gpusched_step_object[i+1].min_time_start)
unroll += "\tif (idle_time > 0)\n\t\tusleep(idle_time);\n"
print(currStep.list_jobs)
return unroll
......@@ -56,6 +64,9 @@ def write_timer_initialization():
chrono_dump += "\tusing namespace std::chrono\n";
chrono_dump += "\ttypedef duration<double> dsec\n";
chrono_dump += "\ttypedef milliseconds ms;\n";
chrono_dump += "\tdsec elapsed_time;\n"
chrono_dump += "\tms elapsed_time_ms;\n"
chrono_dump += "\tint idle_time;\n"
chrono_dump += "\thigh_resolution_clock::time_point step_end;\n"
chrono_dump += "\thigh_resolution_clock::time_point base = high_resolution_block::now();\n"
return chrono_dump
......@@ -67,6 +78,7 @@ def write_main(args):
outFile.write("#include <stdio.h>\n"
"#include <chrono>\n"
"#include <string>\n"
"#include <unistd.h>\n"
"#include \"steps_struct.hpp\"\n"
"#include \"gpu_tasks.hpp\"\n"
"#include \"{kernel_file}\"\n".format(kernel_file=args.kernel_declaration)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment