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

check idle time

parent e2584478
Branches
No related tags found
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