changeset 8:69bce356873c

Add graph.sh
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Sat, 03 Feb 2018 21:58:16 +0900
parents 2bc5a2ce7a15
children ced6d14ecce4
files benchmark/bitonicSort benchmark/bitonicSort.svg benchmark/graph.sh benchmark/twice.svg
diffstat 4 files changed, 102 insertions(+), 82 deletions(-) [+]
line wrap: on
line diff
--- a/benchmark/bitonicSort	Sat Feb 03 18:17:42 2018 +0900
+++ b/benchmark/bitonicSort	Sat Feb 03 21:58:16 2018 +0900
@@ -5,3 +5,4 @@
 16 cpus, 1.760577
 32 cpus, 0.981566
 gpu, 2.925443
+gpu(kernel only), 0.163514
--- a/benchmark/bitonicSort.svg	Sat Feb 03 18:17:42 2018 +0900
+++ b/benchmark/bitonicSort.svg	Sat Feb 03 21:58:16 2018 +0900
@@ -42,111 +42,111 @@
 <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='M63.6,422.4 L72.6,422.4 M575.0,422.4 L566.0,422.4  '/>	<g transform="translate(55.3,426.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,444.0 L72.6,444.0 M557.8,444.0 L548.8,444.0  '/>	<g transform="translate(55.3,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='M63.6,385.6 L72.6,385.6 M575.0,385.6 L566.0,385.6  '/>	<g transform="translate(55.3,389.5)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,405.0 L72.6,405.0 M557.8,405.0 L548.8,405.0  '/>	<g transform="translate(55.3,408.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 2</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='M63.6,348.7 L72.6,348.7 M575.0,348.7 L566.0,348.7  '/>	<g transform="translate(55.3,352.6)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,366.0 L72.6,366.0 M557.8,366.0 L548.8,366.0  '/>	<g transform="translate(55.3,369.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 4</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='M63.6,311.9 L72.6,311.9 M575.0,311.9 L566.0,311.9  '/>	<g transform="translate(55.3,315.8)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,327.0 L72.6,327.0 M557.8,327.0 L548.8,327.0  '/>	<g transform="translate(55.3,330.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 6</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='M63.6,275.1 L72.6,275.1 M575.0,275.1 L566.0,275.1  '/>	<g transform="translate(55.3,279.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,288.0 L72.6,288.0 M557.8,288.0 L548.8,288.0  '/>	<g transform="translate(55.3,291.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 8</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='M63.6,238.2 L72.6,238.2 M575.0,238.2 L566.0,238.2  '/>	<g transform="translate(55.3,242.1)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,249.0 L72.6,249.0 M557.8,249.0 L548.8,249.0  '/>	<g transform="translate(55.3,252.9)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 10</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='M63.6,201.4 L72.6,201.4 M575.0,201.4 L566.0,201.4  '/>	<g transform="translate(55.3,205.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,210.1 L72.6,210.1 M557.8,210.1 L548.8,210.1  '/>	<g transform="translate(55.3,214.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 12</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='M63.6,164.6 L72.6,164.6 M575.0,164.6 L566.0,164.6  '/>	<g transform="translate(55.3,168.5)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,171.1 L72.6,171.1 M557.8,171.1 L548.8,171.1  '/>	<g transform="translate(55.3,175.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 14</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='M63.6,127.8 L72.6,127.8 M575.0,127.8 L566.0,127.8  '/>	<g transform="translate(55.3,131.7)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,132.1 L72.6,132.1 M557.8,132.1 L548.8,132.1  '/>	<g transform="translate(55.3,136.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 16</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='M63.6,90.9 L72.6,90.9 M575.0,90.9 L566.0,90.9  '/>	<g transform="translate(55.3,94.8)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,93.1 L72.6,93.1 M557.8,93.1 L548.8,93.1  '/>	<g transform="translate(55.3,97.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 18</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='M63.6,54.1 L72.6,54.1 M575.0,54.1 L566.0,54.1  '/>	<g transform="translate(55.3,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
+	<path stroke='black'  d='M63.6,54.1 L72.6,54.1 M557.8,54.1 L548.8,54.1  '/>	<g transform="translate(55.3,58.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="end">
 		<text><tspan font-family="Arial" > 20</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='M100.1,422.4 L100.1,413.4 M100.1,54.1 L100.1,63.1  '/>	<g transform="translate(100.1,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M94.5,444.0 L94.5,435.0 M94.5,54.1 L94.5,63.1  '/>	<g transform="translate(94.5,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='M173.2,422.4 L173.2,413.4 M173.2,54.1 L173.2,63.1  '/>	<g transform="translate(173.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M156.3,444.0 L156.3,435.0 M156.3,54.1 L156.3,63.1  '/>	<g transform="translate(156.3,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='M246.2,422.4 L246.2,413.4 M246.2,54.1 L246.2,63.1  '/>	<g transform="translate(246.2,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M218.0,444.0 L218.0,435.0 M218.0,54.1 L218.0,63.1  '/>	<g transform="translate(218.0,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='M319.3,422.4 L319.3,413.4 M319.3,54.1 L319.3,63.1  '/>	<g transform="translate(319.3,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M279.8,444.0 L279.8,435.0 M279.8,54.1 L279.8,63.1  '/>	<g transform="translate(279.8,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='M392.4,422.4 L392.4,413.4 M392.4,54.1 L392.4,63.1  '/>	<g transform="translate(392.4,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M341.6,444.0 L341.6,435.0 M341.6,54.1 L341.6,63.1  '/>	<g transform="translate(341.6,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='M465.4,422.4 L465.4,413.4 M465.4,54.1 L465.4,63.1  '/>	<g transform="translate(465.4,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M403.4,444.0 L403.4,435.0 M403.4,54.1 L403.4,63.1  '/>	<g transform="translate(403.4,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='M538.5,422.4 L538.5,413.4 M538.5,54.1 L538.5,63.1  '/>	<g transform="translate(538.5,444.3)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<path stroke='black'  d='M465.1,444.0 L465.1,435.0 M465.1,54.1 L465.1,63.1  '/>	<g transform="translate(465.1,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='M526.9,444.0 L526.9,435.0 M526.9,54.1 L526.9,63.1  '/>	<g transform="translate(526.9,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='M63.6,54.1 L63.6,422.4 L575.0,422.4 L575.0,54.1 L63.6,54.1 Z  '/></g>
+	<path stroke='black'  d='M63.6,54.1 L63.6,444.0 L557.8,444.0 L557.8,54.1 L63.6,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">
-		<text><tspan font-family="Arial" >time(ms)</tspan></text>
+	<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(s)</tspan></text>
 	</g>
 </g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
-	<g transform="translate(319.3,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(319.3,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
+	<g transform="translate(310.7,31.0)" stroke="none" fill="black" font-family="Arial" font-size="12.00"  text-anchor="middle">
 		<text><tspan font-family="Arial" >bitonicSort benchmark</tspan></text>
 	</g>
 </g>
@@ -155,39 +155,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 = '81.9,422.4 118.5,422.4 118.5,63.2 81.9,63.2 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '79.0,444.0 110.0,444.0 110.0,63.8 79.0,63.8 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M81.9,422.4 L81.9,63.3 L118.4,63.3 L118.4,422.4 L81.9,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M79.0,444.0 L79.0,63.9 L109.9,63.9 L109.9,444.0 L79.0,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 = '154.9,422.4 191.6,422.4 191.6,230.8 154.9,230.8 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '140.8,444.0 171.8,444.0 171.8,241.2 140.8,241.2 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M154.9,422.4 L154.9,230.9 L191.5,230.9 L191.5,422.4 L154.9,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M140.8,444.0 L140.8,241.3 L171.7,241.3 L171.7,444.0 L140.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 = '228.0,422.4 264.6,422.4 264.6,319.8 228.0,319.8 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '202.6,444.0 233.6,444.0 233.6,335.4 202.6,335.4 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M228.0,422.4 L228.0,319.9 L264.5,319.9 L264.5,422.4 L228.0,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M202.6,444.0 L202.6,335.5 L233.5,335.5 L233.5,444.0 L202.6,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 = '301.0,422.4 337.7,422.4 337.7,366.5 301.0,366.5 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '264.4,444.0 295.4,444.0 295.4,384.8 264.4,384.8 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M301.0,422.4 L301.0,366.6 L337.6,366.6 L337.6,422.4 L301.0,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M264.4,444.0 L264.4,384.9 L295.3,384.9 L295.3,444.0 L264.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 = '326.1,444.0 357.1,444.0 357.1,409.6 326.1,409.6 '/>
+	</g>
+	<path stroke='rgb(  0,   0,   0)'  d='M326.1,444.0 L326.1,409.7 L357.0,409.7 L357.0,444.0 L326.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 = '374.1,422.4 410.7,422.4 410.7,389.9 374.1,389.9 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '387.9,444.0 418.9,444.0 418.9,424.8 387.9,424.8 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M374.1,422.4 L374.1,390.0 L410.6,390.0 L410.6,422.4 L374.1,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M387.9,444.0 L387.9,424.9 L418.8,424.9 L418.8,444.0 L387.9,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 = '447.2,422.4 483.8,422.4 483.8,404.2 447.2,404.2 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '449.7,444.0 480.7,444.0 480.7,386.9 449.7,386.9 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M447.2,422.4 L447.2,404.3 L483.7,404.3 L483.7,422.4 L447.2,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M449.7,444.0 L449.7,387.0 L480.6,387.0 L480.6,444.0 L449.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 = '520.2,422.4 556.8,422.4 556.8,368.4 520.2,368.4 '/>
+		<polygon fill = 'rgb(  0, 255, 255)' points = '511.5,444.0 542.5,444.0 542.5,440.7 511.5,440.7 '/>
 	</g>
-	<path stroke='rgb(  0,   0,   0)'  d='M520.2,422.4 L520.2,368.5 L556.7,368.5 L556.7,422.4 L520.2,422.4 Z  '/></g>
+	<path stroke='rgb(  0,   0,   0)'  d='M511.5,444.0 L511.5,440.8 L542.4,440.8 L542.4,444.0 L511.5,444.0 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="2.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 	</g>
@@ -196,7 +201,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='M63.6,54.1 L63.6,422.4 L575.0,422.4 L575.0,54.1 L63.6,54.1 Z  '/></g>
+	<path stroke='black'  d='M63.6,54.1 L63.6,444.0 L557.8,444.0 L557.8,54.1 L63.6,54.1 Z  '/></g>
 <g fill="none" color="black" stroke="currentColor" stroke-width="1.00" stroke-linecap="butt" stroke-linejoin="miter">
 </g>
 </g>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/benchmark/graph.sh	Sat Feb 03 21:58:16 2018 +0900
@@ -0,0 +1,19 @@
+#!/bin/sh
+#!/bin/sh
+function create_graph() {
+gnuplot << EOF
+set title "$1 benchmark"
+set terminal svg
+set datafile separator ","
+set output "$1.svg"
+set ylabel "time(ms)"
+set boxwidth 0.5 relative
+set style fill solid border lc rgb "black"
+plot "$1" using 0:2:xtic(1) with boxes lw 2 lc rgb "cyan" notitle
+EOF
+}
+
+for example in $@; do
+    create_graph $example
+done
+
--- a/benchmark/twice.svg	Sat Feb 03 18:17:42 2018 +0900
+++ b/benchmark/twice.svg	Sat Feb 03 21:58:16 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">
+	<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(  0, 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(  0, 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(  0, 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(  0, 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(  0, 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(  0, 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(  0, 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(  0, 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>