# HG changeset patch # User Yuhi TOMARI # Date 1383591439 -32400 # Node ID a5c4a8caf04431e3ed70955a176c6a21e75916e6 # Parent 343fad986745364a6d446f9a1016eab617812dc7 update conclusion diff -r 343fad986745 -r a5c4a8caf044 paper/conclusion.tex --- a/paper/conclusion.tex Mon Nov 04 23:35:10 2013 +0900 +++ b/paper/conclusion.tex Tue Nov 05 03:57:19 2013 +0900 @@ -5,4 +5,7 @@ データの転送や測定の見直し等、チューニングが必要である。 更に複数あるTaskをCPUとGPU、両方のアーキテクチャで実行できるように実装した。 - +しかし、CPUとGPUは同じ性能が出るわけではない。 +更に GPU はデータの転送がネックになりやすいので、各Taskの計算量と実行時間が比例しない場合がある。 +そういった場合にCPUとGPUに均等にTaskを割り振ってしまうと、並列度が出ない。 +そこでCPUとGPUに対して最適にTaskを割り振るSchedulingの手法を提案した。 diff -r 343fad986745 -r a5c4a8caf044 paper/ipsj.pdf Binary file paper/ipsj.pdf has changed diff -r 343fad986745 -r a5c4a8caf044 paper/scheduling.tex --- a/paper/scheduling.tex Mon Nov 04 23:35:10 2013 +0900 +++ b/paper/scheduling.tex Tue Nov 05 03:57:19 2013 +0900 @@ -4,9 +4,12 @@ CPU 側の計算量によってバスの転送を圧迫する事が考えられる。 他にも、各アーキテクチャの得意とする計算が異なる事からも実行速度に差異が出ることが予想できる。 これらの事から、 CPU と GPU に対して均等に Task を割り振ると並列度は低くなる。 -並列度を維持するためにアーキテクチャのコア数によってどちらかに優先してTaskを振る必要がある。 -一般的にコア数はGPUの方が多いので、GPUを優先してTaskを振っていく。 +並列度を維持するためにアーキテクチャのコア数によってどちらかに優先して Task を振る必要がある。 \subsection{Scheduling} -Schedulingを行う際は、並列実行するTaskをCPUとGPUで事前に実行し、実行速度を測定する。 -それぞれの実行速度の割合で重みをつけてTaskを振り分けていく。 + Scheduling を行う際は、並列実行する Task を CPU と GPU で事前に一度実行し、実行速度を測定する。 +それぞれの実行速度の割合で重みをつけて Task を振り分けていく。 +片方が先に終わり、もう一方はまだ動いている、という状態が好ましくない。 + Task が終了するときは CPU も GPU も両方同時に実行終了するように Scheduling する。 +基本的には GPU の方がコア数が多いので、優先して Task を振ることになる。 +データの転送で