Mercurial > hg > Papers > 2018 > parusu-master
changeset 33:6da0158a17a1
Add bitonicSort
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 03 Feb 2018 22:46:48 +0900 |
parents | ebcf093795f3 |
children | 6b1fa842b85c |
files | paper/evaluation.tex paper/fig/twice.pdf paper/fig/twice.svg paper/fig/twice.xbb paper/master_paper.pdf |
diffstat | 5 files changed, 77 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/evaluation.tex Sat Feb 03 20:56:35 2018 +0900 +++ b/paper/evaluation.tex Sat Feb 03 22:46:48 2018 +0900 @@ -44,8 +44,8 @@ Twice は並列実行の依存関係もなく、データ並列での実行に適した課題である。 そのため、 通信時間を考慮しなければ CPU よりコア数が多い GPU が有利となる。 -要素数$2^{23}$ のデータに対する Twice の実行結果を \tabref{twice}、\figref{twice}に示す。 -CPU 実行の際は $2^{23}$ のデータを 64 個のTask に分割して並列実行を行っている。 +要素数$2^{24}$ のデータに対する Twice の実行結果を \tabref{twice}、\figref{twice}に示す。 +CPU 実行の際は $2^{24}$ のデータを 64個のTask に分割して並列実行を行っている。 ここでの ``GPU`` は CPU、 GPU 間のデータの通信時間を含めた時間、 ``GPU(kernel only)`` は kernel のみの実行時間である。 \begin{table}[htbp] @@ -61,7 +61,7 @@ GPU & 542.816\\ \hline GPU(kernel only)& 0.755\\ \hline \end{tabular} - \caption{$2^{23}$ のデータに対する Twice} + \caption{$2^{24}$ のデータに対する Twice} \label{tab:twice} \end{center} \end{table} @@ -91,9 +91,44 @@ \begin{center} \includegraphics[scale=0.6]{./fig/bitonicNetwork.pdf} \end{center} - \caption{要素数8の BtionicNetwork} + \caption{要素数8の BitonicNetwork} \label{fig:bitonicNetwork} \end{figure} BitonicSort はステージ毎に決まった2点間の要素の入れ替えを並列に実行することによってソートを行う。 +Gears OS ではこのステージ毎に Output Data Gear を書き出し、 次のステージの Code Gear の Input Data Gear として記述することで BitonicSort を実現する。 +要素数$2^{24}$ のデータに対する BitonicSort の実行結果を \tabref{bitonicSort}、\figref{bitonicSort}に示す。 +こちらも Twice と同じくCPU 実行の際は $2^{24}$ のデータを 64個のTask に分割して並列実行を行っている。 +つまり生成される Task は 64 * ステージ数 となる。 + +\begin{table}[htbp] + \begin{center} + \begin{tabular}{|l||l|} \hline + Processor & Time(s) \\ \hline + 1 CPU & 41.416 \\ \hline + 2 CPUs & 23.340\\ \hline + 4 CPUs & 11.952\\ \hline + 8 CPUs & 6.320\\ \hline + 16 CPUs & 3.336\\ \hline + 32 CPUs & 1.872\\ \hline + GPU & 5.420\\ \hline + GPU(kernel only)& 0.163\\ \hline + \end{tabular} + \caption{$2^{24}$ のデータに対する Twice} + \label{tab:bitonicSort} + \end{center} +\end{table} + +\begin{figure}[htbp] + \begin{center} + \includegraphics[scale=0.6]{./fig/bitonicSort.pdf} + \end{center} + \caption{$2^{24}$ のデータに対する BitonicSort} + \label{fig:bitonicSort} +\end{figure} + +1 CPU と 32 CPU で 約22.12 倍 の速度向上が見られた。 +GPU では通信時間を含めると 8 CPU の約1.16倍となり、 kernel のみの実行では 32 CPU の約11.48倍となった。 +現在の Gears OS の CUDA 実装では、 Output Data Gear を書き出す際に一度 GPU から CPU へ kernel の実行結果の書き出しを行っており、その処理の時間で差が出たと考えられる。 +GPU で実行される Task 同士の依存関係の解決の際はCuDevicePtr などのGPU のメモリへのポインタを渡し、CPU でデータが必要になったときに初めて GPU から CPU へデータの通信を行う実装が必要となる。
--- a/paper/fig/twice.svg Sat Feb 03 20:56:35 2018 +0900 +++ b/paper/fig/twice.svg Sat Feb 03 22:46:48 2018 +0900 @@ -42,96 +42,91 @@ <g fill="none" color="white" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,422.4 L80.9,422.4 M575.0,422.4 L566.0,422.4 '/> <g transform="translate(63.6,426.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,444.0 L80.9,444.0 M557.3,444.0 L548.3,444.0 '/> <g transform="translate(63.6,447.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 0</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,361.0 L80.9,361.0 M575.0,361.0 L566.0,361.0 '/> <g transform="translate(63.6,364.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,379.0 L80.9,379.0 M557.3,379.0 L548.3,379.0 '/> <g transform="translate(63.6,382.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 100</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,299.6 L80.9,299.6 M575.0,299.6 L566.0,299.6 '/> <g transform="translate(63.6,303.5)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,314.0 L80.9,314.0 M557.3,314.0 L548.3,314.0 '/> <g transform="translate(63.6,317.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 200</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,238.2 L80.9,238.2 M575.0,238.2 L566.0,238.2 '/> <g transform="translate(63.6,242.1)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,249.0 L80.9,249.0 M557.3,249.0 L548.3,249.0 '/> <g transform="translate(63.6,252.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 300</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,176.9 L80.9,176.9 M575.0,176.9 L566.0,176.9 '/> <g transform="translate(63.6,180.8)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,184.1 L80.9,184.1 M557.3,184.1 L548.3,184.1 '/> <g transform="translate(63.6,188.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 400</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,115.5 L80.9,115.5 M575.0,115.5 L566.0,115.5 '/> <g transform="translate(63.6,119.4)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,119.1 L80.9,119.1 M557.3,119.1 L548.3,119.1 '/> <g transform="translate(63.6,123.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 500</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,54.1 L80.9,54.1 M575.0,54.1 L566.0,54.1 '/> <g transform="translate(63.6,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> + <path stroke='black' d='M71.9,54.1 L80.9,54.1 M557.3,54.1 L548.3,54.1 '/> <g transform="translate(63.6,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="end"> <text><tspan font-family="Arial" > 600</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M103.3,422.4 L103.3,413.4 M103.3,54.1 L103.3,63.1 '/> <g transform="translate(103.3,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M102.2,444.0 L102.2,435.0 M102.2,54.1 L102.2,63.1 '/> <g transform="translate(102.2,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >1 cpu</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M166.2,422.4 L166.2,413.4 M166.2,54.1 L166.2,63.1 '/> <g transform="translate(166.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M162.9,444.0 L162.9,435.0 M162.9,54.1 L162.9,63.1 '/> <g transform="translate(162.9,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >2 cpus</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M229.1,422.4 L229.1,413.4 M229.1,54.1 L229.1,63.1 '/> <g transform="translate(229.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M223.6,444.0 L223.6,435.0 M223.6,54.1 L223.6,63.1 '/> <g transform="translate(223.6,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >4 cpus</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M292.0,422.4 L292.0,413.4 M292.0,54.1 L292.0,63.1 '/> <g transform="translate(292.0,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M284.3,444.0 L284.3,435.0 M284.3,54.1 L284.3,63.1 '/> <g transform="translate(284.3,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >8 cpus</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M354.9,422.4 L354.9,413.4 M354.9,54.1 L354.9,63.1 '/> <g transform="translate(354.9,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M344.9,444.0 L344.9,435.0 M344.9,54.1 L344.9,63.1 '/> <g transform="translate(344.9,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >16 cpus</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M417.8,422.4 L417.8,413.4 M417.8,54.1 L417.8,63.1 '/> <g transform="translate(417.8,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M405.6,444.0 L405.6,435.0 M405.6,54.1 L405.6,63.1 '/> <g transform="translate(405.6,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >32 cpus</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M480.7,422.4 L480.7,413.4 M480.7,54.1 L480.7,63.1 '/> <g transform="translate(480.7,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <path stroke='black' d='M466.3,444.0 L466.3,435.0 M466.3,54.1 L466.3,63.1 '/> <g transform="translate(466.3,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >gpu</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M543.6,422.4 L543.6,413.4 M543.6,54.1 L543.6,63.1 '/> <g transform="translate(543.6,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> - <text><tspan font-family="Arial" >gpu(only)</tspan></text> + <path stroke='black' d='M527.0,444.0 L527.0,435.0 M527.0,54.1 L527.0,63.1 '/> <g transform="translate(527.0,465.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <text><tspan font-family="Arial" >gpu(kernel only)</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,54.1 L71.9,422.4 L575.0,422.4 L575.0,54.1 L71.9,54.1 Z '/></g> + <path stroke='black' d='M71.9,54.1 L71.9,444.0 L557.3,444.0 L557.3,54.1 L71.9,54.1 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <g transform="translate(16.3,238.3) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <g transform="translate(16.3,249.1) rotate(270)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >time(ms)</tspan></text> </g> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <g transform="translate(323.4,471.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> - <text><tspan font-family="Arial" >CPUs</tspan></text> - </g> -</g> -<g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <g transform="translate(323.4,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> + <g transform="translate(314.6,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00" text-anchor="middle"> <text><tspan font-family="Arial" >twice benchmark</tspan></text> </g> </g> @@ -140,44 +135,44 @@ </g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '87.6,422.4 119.2,422.4 119.2,331.5 87.6,331.5 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '87.1,444.0 117.5,444.0 117.5,347.8 87.1,347.8 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M87.6,422.4 L87.6,331.6 L119.1,331.6 L119.1,422.4 L87.6,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M87.1,444.0 L87.1,347.9 L117.4,347.9 L117.4,444.0 L87.1,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '150.5,422.4 182.1,422.4 182.1,372.7 150.5,372.7 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '147.7,444.0 178.2,444.0 178.2,391.4 147.7,391.4 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M150.5,422.4 L150.5,372.8 L182.0,372.8 L182.0,422.4 L150.5,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M147.7,444.0 L147.7,391.5 L178.1,391.5 L178.1,444.0 L147.7,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '213.4,422.4 244.9,422.4 244.9,397.4 213.4,397.4 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '208.4,444.0 238.9,444.0 238.9,417.6 208.4,417.6 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M213.4,422.4 L213.4,397.5 L244.8,397.5 L244.8,422.4 L213.4,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M208.4,444.0 L208.4,417.7 L238.8,417.7 L238.8,444.0 L208.4,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '276.3,422.4 307.8,422.4 307.8,409.9 276.3,409.9 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '269.1,444.0 299.5,444.0 299.5,430.7 269.1,430.7 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M276.3,422.4 L276.3,410.0 L307.7,410.0 L307.7,422.4 L276.3,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M269.1,444.0 L269.1,430.8 L299.4,430.8 L299.4,444.0 L269.1,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '339.2,422.4 370.7,422.4 370.7,415.6 339.2,415.6 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '329.8,444.0 360.2,444.0 360.2,436.8 329.8,436.8 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M339.2,422.4 L339.2,415.7 L370.6,415.7 L370.6,422.4 L339.2,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M329.8,444.0 L329.8,436.9 L360.1,436.9 L360.1,444.0 L329.8,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '402.1,422.4 433.6,422.4 433.6,418.7 402.1,418.7 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '390.4,444.0 420.9,444.0 420.9,440.1 390.4,440.1 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M402.1,422.4 L402.1,418.8 L433.5,418.8 L433.5,422.4 L402.1,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M390.4,444.0 L390.4,440.2 L420.8,440.2 L420.8,444.0 L390.4,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '464.9,422.4 496.5,422.4 496.5,89.1 464.9,89.1 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '451.1,444.0 481.6,444.0 481.6,91.2 451.1,91.2 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M464.9,422.4 L464.9,89.2 L496.4,89.2 L496.4,422.4 L464.9,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M451.1,444.0 L451.1,91.3 L481.5,91.3 L481.5,444.0 L451.1,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> <g stroke='none' shape-rendering='crispEdges'> - <polygon fill = 'rgb( 0, 255, 255)' points = '527.8,422.4 559.4,422.4 559.4,421.8 527.8,421.8 '/> + <polygon fill = 'rgb(224, 255, 255)' points = '511.8,444.0 542.2,444.0 542.2,443.4 511.8,443.4 '/> </g> - <path stroke='rgb( 0, 0, 0)' d='M527.8,422.4 L527.8,421.9 L559.3,421.9 L559.3,422.4 L527.8,422.4 Z '/></g> + <path stroke='rgb( 0, 0, 0)' d='M511.8,444.0 L511.8,443.5 L542.1,443.5 L542.1,444.0 L511.8,444.0 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter"> </g> </g> @@ -186,7 +181,7 @@ <g fill="none" color="black" stroke="black" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> </g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> - <path stroke='black' d='M71.9,54.1 L71.9,422.4 L575.0,422.4 L575.0,54.1 L71.9,54.1 Z '/></g> + <path stroke='black' d='M71.9,54.1 L71.9,444.0 L557.3,444.0 L557.3,54.1 L71.9,54.1 Z '/></g> <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter"> </g> </g>
--- a/paper/fig/twice.xbb Sat Feb 03 20:56:35 2018 +0900 +++ b/paper/fig/twice.xbb Sat Feb 03 22:46:48 2018 +0900 @@ -2,7 +2,7 @@ %%Creator: extractbb 20170318 %%BoundingBox: 0 0 600 480 %%HiResBoundingBox: 0.000000 0.000000 600.000000 480.000000 -%%PDFVersion: 1.3 +%%PDFVersion: 1.5 %%Pages: 1 -%%CreationDate: Sat Feb 3 18:15:19 2018 +%%CreationDate: Sat Feb 3 22:27:55 2018