Mercurial > hg > Game > Cerium
annotate TaskManager/kernel/ppe/TaskManager.cc @ 2054:2e7a6f40672f draft
add param(4) in FileMapReduce.cc
author | masa |
---|---|
date | Fri, 29 Jan 2016 15:56:28 +0900 |
parents | 0f6d0ae5c3f3 |
children |
rev | line source |
---|---|
3 | 1 #include "TaskManager.h" |
1891
e0d465efc57e
directory reogranization for Cell/Fifo/ManyCore/Gpu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
1627
diff
changeset
|
2 #include "TaskManagerFactory.h" |
619 | 3 #include "Scheduler.h" |
700 | 4 #include "HTask.h" |
5 #include "Task.h" | |
6 #include "SysFunc.h" | |
3 | 7 |
1627 | 8 TaskManager::TaskManager(int num, int gpu) : machineNum(num) , gpuNum(gpu) |
229 | 9 { |
10 } | |
3 | 11 |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
12 TaskManager::~TaskManager() |
194 | 13 { |
14 delete m_impl; | |
15 } | |
16 | |
3 | 17 /** |
1891
e0d465efc57e
directory reogranization for Cell/Fifo/ManyCore/Gpu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
1627
diff
changeset
|
18 * TaskManagerFactory |
e0d465efc57e
directory reogranization for Cell/Fifo/ManyCore/Gpu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
1627
diff
changeset
|
19 * create_impl(int); |
3 | 20 * |
109 | 21 * % make cell ってすると cell 版が、 |
22 * % make fifo ってすると fifo 版 がリンクされるようにしているので | |
23 * それに応じて create_impl が返す値を変えています。 | |
24 * cell だったら CellManagerImpl, fifo だったら FifoManagerImpl です。 | |
3 | 25 * |
26 */ | |
27 | |
28 void | |
1479
163220e54cc0
remove hard code for TaskLog
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
1229
diff
changeset
|
29 TaskManager::init(int spuIdle, int export_task_log, int useRefDma=0) |
3 | 30 { |
1626 | 31 m_impl = create_impl(machineNum,gpuNum,useRefDma); |
1479
163220e54cc0
remove hard code for TaskLog
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
1229
diff
changeset
|
32 m_impl->init(spuIdle, useRefDma, export_task_log); |
109 | 33 m_impl->systask_init(); |
3 | 34 } |
35 | |
20 | 36 void |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
37 TaskManager::finish() |
20 | 38 { |
39 delete m_impl; | |
40 } | |
41 | |
3 | 42 /** |
109 | 43 * @param [command] Task executes method number |
3 | 44 * |
45 * @return this task | |
46 */ | |
47 HTaskPtr | |
109 | 48 TaskManager::create_task(int cmd) |
3 | 49 { |
897
6bd218d3f643
add return address in SimpleTask for debugging.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
804
diff
changeset
|
50 return m_impl->create_task(cmd,__builtin_return_address(0)); |
3 | 51 } |
52 | |
1542
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
53 HTaskPtr |
634 | 54 TaskManager::create_task(int cmd, memaddr r, long rs, memaddr w, long ws) |
55 { | |
897
6bd218d3f643
add return address in SimpleTask for debugging.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
804
diff
changeset
|
56 return m_impl->create_task(cmd,r,rs,w,ws,__builtin_return_address(0)); |
634 | 57 } |
58 | |
1542
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
59 HTaskPtr |
700 | 60 TaskManager::create_task_array(int id, int num_task, int num_param, int num_inData, int num_outData) { |
897
6bd218d3f643
add return address in SimpleTask for debugging.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
804
diff
changeset
|
61 return m_impl->create_task_array(id, num_task, num_param, num_inData, num_outData,__builtin_return_address(0)) ; |
700 | 62 } |
634 | 63 |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
64 /** |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
65 * TaskManaer 終了時に実行される関数の設定 |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
66 */ |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
67 void |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
68 TaskManager::set_TMend(void (*endf)(TaskManager *manager)) |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
69 { |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
70 tm_end = endf; |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
71 } |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
72 |
3 | 73 void |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
74 TaskManager::run() |
3 | 75 { |
76 m_impl->run(); | |
77 } | |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
78 |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
79 void* |
1940
0f6d0ae5c3f3
change manager->allocate size long long to long
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
1937
diff
changeset
|
80 TaskManager::allocate(long size) { |
216
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
81 return m_impl->allocate(size); |
e9a52d68db42
rename cerium_main to TMmain, add TMend()
gongo@localhost.localdomain
parents:
194
diff
changeset
|
82 } |
220 | 83 |
84 int | |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
85 TaskManager::get_cpuNum() |
220 | 86 { |
87 return machineNum; | |
88 } | |
229 | 89 |
90 int | |
397
ce86b0186a4a
delete manager (in kernel/ppe/TaskManager.h)
game@henri.cr.ie.u-ryukyu.ac.jp
parents:
373
diff
changeset
|
91 TaskManager::get_random() |
229 | 92 { |
619 | 93 return random(); |
94 } | |
95 | |
96 MemList* | |
97 TaskManager::createMemList(int size, int count) | |
98 { | |
99 return get_scheduler()->createMemList(size, count); | |
229 | 100 } |
368 | 101 |
373 | 102 Scheduler* |
103 TaskManager::get_scheduler() { | |
104 return m_impl->get_scheduler(); | |
368 | 105 } |
480
75e4afa40da2
TaskQueueInfo initiaization...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
397
diff
changeset
|
106 |
1542
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
107 void |
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
108 TaskManager::error(const char* error_message) { |
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
109 printf("%s \n",error_message); |
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
110 exit(1); |
9ccfdc408d51
fix gpu word count.but not count line num.
Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
parents:
1479
diff
changeset
|
111 } |
480
75e4afa40da2
TaskQueueInfo initiaization...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
397
diff
changeset
|
112 /* end */ |