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

added a wrapper for vector

parent 354a806b
Branches
No related tags found
No related merge requests found
...@@ -27,10 +27,13 @@ def parse_tasks(args): ...@@ -27,10 +27,13 @@ def parse_tasks(args):
inFileLines = inFile.readlines() inFileLines = inFile.readlines()
print("Generate GPU tasks file: gpu_tasks.hpp") print("Generate GPU tasks file: gpu_tasks.hpp")
outFile.write("#ifndef __GPU_TASKS_HPP\n" outFile.write("#ifndef __GPU_TASKS_HPP\n"
"#define __GPU_TASKS_HPP\n" "#define __GPU_TASKS_HPP\n"
"#include <array>\n") "#include <vector>\n")
# dump the wrapper for vector
outFile.write(GPUTaskParams.dump_struct_wrapper())
# dump the gputask structure here # dump the gputask structure here
outFile.write(GPUTaskParams.dump_struct()) outFile.write(GPUTaskParams.dump_struct())
for line in inFileLines: for line in inFileLines:
...@@ -55,6 +58,10 @@ def parse_tasks(args): ...@@ -55,6 +58,10 @@ def parse_tasks(args):
list_gpu_tasks_object.append(currTask) list_gpu_tasks_object.append(currTask)
outFile.write(currTask.dump_str() + "\n") outFile.write(currTask.dump_str() + "\n")
relation_task_id_task_name[currTask.task_id] = currTask.name relation_task_id_task_name[currTask.task_id] = currTask.name
outFile.write("static std::vector<std::shared_ptr<igputask> >& get_gpusched_task_vector() {\n"
"\t std::vector<std:::shared_ptr<igputask> > gpu_tasks;\n"
"}\n"
)
outFile.write("#endif") outFile.write("#endif")
print("gpu_tasks.hpp file generated") print("gpu_tasks.hpp file generated")
......
...@@ -52,10 +52,11 @@ class GPUTaskParams: ...@@ -52,10 +52,11 @@ class GPUTaskParams:
# STRUCT NAME # STRUCT NAME
STRUCT_NAME = "gpusched_task_t" STRUCT_NAME = "gpusched_task_t"
WRAPPER_STRUCT_NAME = "gpusched_wrapper_task_t"
def dump_struct(): def dump_struct():
dump = "template<typename ...Types>\n" dump = "template<typename ...Types>\n"
dump += "struct gpusched_task_t {\n" dump += "struct {struct_name}: public {wrapper_name} {{\n".format(struct_name=GPUTaskParams.STRUCT_NAME, wrapper_name=GPUTaskParams.WRAPPER_STRUCT_NAME)
dump = dump + GPUTaskParams.WCET dump = dump + GPUTaskParams.WCET
dump = dump + GPUTaskParams.PERIOD dump = dump + GPUTaskParams.PERIOD
dump = dump + GPUTaskParams.DEADLINE dump = dump + GPUTaskParams.DEADLINE
...@@ -71,7 +72,10 @@ class GPUTaskParams: ...@@ -71,7 +72,10 @@ class GPUTaskParams:
dump = dump + "};\n" dump = dump + "};\n"
return dump return dump
def dump_struct_wrapper():
dump = "struct {wrapper_name}{{}};\n\n".format(wrapper_name=GPUTaskParams.WRAPPER_STRUCT_NAME)
return dump
#@TODO store the cuda kernel definition directly in the structure so we can call it with its params. #@TODO store the cuda kernel definition directly in the structure so we can call it with its params.
class GPUTask: class GPUTask:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment