Mercurial > hg > Papers > 2013 > yuhi-prosym
changeset 19:16628e50fab7
presen commit.but not finished
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 05 Jan 2014 07:48:13 +0900 |
parents | 0d5cf8fb6a18 |
children | 9006629e61b2 |
files | presen/images/exe_cpu_gpu.graffle presen/images/exe_cpu_gpu.png presen/index.html |
diffstat | 3 files changed, 1318 insertions(+), 213 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/images/exe_cpu_gpu.graffle Tue Dec 17 20:00:18 2013 +0900 +++ b/presen/images/exe_cpu_gpu.graffle Sun Jan 05 07:48:13 2014 +0900 @@ -53,7 +53,956 @@ <array> <dict> <key>Bounds</key> - <string>{{340, 287}, {86, 42}}</string> + <string>{{25, 59.301513671875}, {52.999999999999993, 29}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>123</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Data}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>122</integer> + </dict> + <key>ID</key> + <integer>118</integer> + <key>Points</key> + <array> + <string>{440.25341796875, 97.301513671875}</string> + <string>{440.47174072265625, 172.301513671875}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>Arrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{403.25341796875, 55.301513671875}, {72, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>119</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 3}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{421.25341796875, 200.82916259765625}, {72, 35.47235107421875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>120</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{398.8168240399425, 171.82915040596049}, {52.999999999999993, 29}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>121</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GPU}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{397.6900634765625, 172.301513671875}, {85.5633544921875, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>122</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>117</integer> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>116</integer> + </dict> + <key>ID</key> + <integer>112</integer> + <key>Points</key> + <array> + <string>{333.6900634765625, 97.301513671875}</string> + <string>{333.90838623046875, 172.301513671875}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>Arrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{296.6900634765625, 55.301513671875}, {72, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>113</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 2}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{314.6900634765625, 200.82916259765625}, {72, 35.47235107421875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>114</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{292.253469547755, 171.82915040596049}, {52.999999999999993, 29}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>115</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GPU}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{291.126708984375, 172.301513671875}, {85.5633544921875, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>116</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>111</integer> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>110</integer> + </dict> + <key>ID</key> + <integer>106</integer> + <key>Points</key> + <array> + <string>{227.126708984375, 97.301513671875}</string> + <string>{227.34503173828125, 172.301513671875}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>Arrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{190.126708984375, 55.301513671875}, {72, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>107</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 1}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{208.126708984375, 200.82916259765625}, {72, 35.47235107421875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>108</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{185.6901150555675, 171.82915040596049}, {52.999999999999993, 29}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>109</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GPU}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{184.5633544921875, 172.301513671875}, {85.5633544921875, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>110</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>105</integer> + </dict> + <dict> + <key>Class</key> + <string>Group</string> + <key>Graphics</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>104</integer> + </dict> + <key>ID</key> + <integer>100</integer> + <key>Points</key> + <array> + <string>{120.5633544921875, 97.301513671875}</string> + <string>{120.78167724609375, 172.301513671875}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>Arrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{83.5633544921875, 55.301513671875}, {72, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>101</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 0}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{101.5633544921875, 200.82916259765625}, {72, 35.47235107421875}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>102</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>CornerRadius</key> + <real>5</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Task}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{79.126760563380003, 171.82915040596049}, {52.999999999999993, 29}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>103</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg1252\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GPU}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{78, 172.301513671875}, {85.5633544921875, 42}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>LucidaGrande</string> + <key>Size</key> + <real>24</real> + </dict> + <key>ID</key> + <integer>104</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Width</key> + <real>2</real> + </dict> + </dict> + </dict> + </array> + <key>ID</key> + <integer>99</integer> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>ID</key> + <integer>39</integer> + <key>Points</key> + <array> + <string>{548.92778015136719, 13.6507568359375}</string> + <string>{548.92778015136719, 391.5000030670933}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>FilledBall</string> + </dict> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{839.32571411132812, 171.301513671875}, {86, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -100,7 +1049,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{306, 218.8492431640625}, {86, 42}}</string> + <string>{{805.32571411132812, 103.1507568359375}, {86, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -159,8 +1108,8 @@ <integer>54</integer> <key>Points</key> <array> - <string>{347, 270}</string> - <string>{406.5792236328125, 368.92462348937988}</string> + <string>{846.32571411132812, 154.301513671875}</string> + <string>{905.90493774414062, 253.22613716125488}</string> </array> <key>Style</key> <dict> @@ -172,6 +1121,8 @@ <true/> <key>TailArrow</key> <string>0</string> + <key>Width</key> + <real>2</real> </dict> </dict> <key>Tail</key> @@ -196,9 +1147,9 @@ <integer>38</integer> <key>Points</key> <array> - <string>{230.0950622558594, 270.38192028256515}</string> - <string>{347, 270}</string> - <string>{405.91511812952945, 203.67227265645261}</string> + <string>{729.4207763671875, 154.68343395444015}</string> + <string>{846.32571411132812, 154.301513671875}</string> + <string>{905.90492613886477, 87.226137161254883}</string> </array> <key>Style</key> <dict> @@ -210,6 +1161,8 @@ <true/> <key>TailArrow</key> <string>0</string> + <key>Width</key> + <real>2</real> </dict> </dict> <key>Tail</key> @@ -220,7 +1173,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{105.09506225585938, 317.52764892578125}, {125, 42}}</string> + <string>{{604.4207763671875, 201.82916259765625}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -267,7 +1220,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{96.095062255859375, 308.52764892578125}, {125, 42}}</string> + <string>{{595.4207763671875, 192.82916259765625}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -314,7 +1267,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{87.095062255859375, 299.52764892578125}, {125, 42}}</string> + <string>{{586.4207763671875, 183.82916259765625}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -366,7 +1319,7 @@ <array> <dict> <key>Bounds</key> - <string>{{444.12676056338012, 393.8492462311558}, {125, 42}}</string> + <string>{{943.45247467470836, 278.1507599030308}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -413,7 +1366,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{435.12676056338012, 384.8492462311558}, {125, 42}}</string> + <string>{{934.45247467470836, 269.1507599030308}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -460,7 +1413,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{426.12676056338012, 375.8492462311558}, {125, 42}}</string> + <string>{{925.45247467470836, 260.1507599030308}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -512,7 +1465,7 @@ <array> <dict> <key>Bounds</key> - <string>{{409.70598419619262, 340.52763673408549}, {53, 29}}</string> + <string>{{909.03169830752074, 224.82915040596049}, {53, 29}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -560,7 +1513,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{406.5792236328125, 337}, {109.12676239013672, 63.849246978759766}}</string> + <string>{{905.90493774414062, 221.301513671875}, {109.12676239013672, 63.849246978759766}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -609,7 +1562,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{435.12674895810426, 218.8492462311558}, {125, 42}}</string> + <string>{{934.45246306943238, 103.1507599030308}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -656,7 +1609,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{426.12674895810426, 209.8492462311558}, {125, 42}}</string> + <string>{{925.45246306943238, 94.150759903030803}, {125, 42}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -708,7 +1661,7 @@ <array> <dict> <key>Bounds</key> - <string>{{410.70597259091676, 174.52763673408549}, {51, 29}}</string> + <string>{{910.03168670224488, 58.82915040596049}, {51, 29}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -756,7 +1709,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{406.57921202753664, 171}, {109.12676239013672, 63.849246978759766}}</string> + <string>{{905.90492613886477, 55.301513671875}, {109.12676239013672, 63.849246978759766}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -801,7 +1754,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{70.674285888671875, 230.00001073482645}, {159.4207763671875, 80.763819095477402}}</string> + <string>{{570, 114.30152440670145}, {159.4207763671875, 80.763819095477402}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FontInfo</key> @@ -898,7 +1851,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2013-12-17 09:13:07 +0000</string> + <string>2013-12-20 02:31:44 +0000</string> <key>Modifier</key> <string>yuhi</string> <key>NotesVisible</key> @@ -979,7 +1932,7 @@ </dict> </array> <key>Frame</key> - <string>{{498, 119}, {693, 922}}</string> + <string>{{217, 97}, {740, 922}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key> @@ -993,7 +1946,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{27, 16}, {558, 767}}</string> + <string>{{0, 0}, {605, 767}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- a/presen/index.html Tue Dec 17 20:00:18 2013 +0900 +++ b/presen/index.html Sun Jan 05 07:48:13 2014 +0900 @@ -37,7 +37,7 @@ <slide> <hgroup> - <h3>研究目的</h3> + <h3>研究目的(1/2)</h3> </hgroup> <article> <p> @@ -46,7 +46,7 @@ Ceriumの開発・改良を行っている </p> <p> - 本研究では新たにGPU上での並列実行に対応 + CeriumはGPU上での並列実行に対応している <p> <font color="red">ヘテロジニアス(異種混合)環境下でのプログラミングをサポート</font> </p> @@ -56,7 +56,7 @@ <slide> <hgroup> - <h3>CeriumによるGPGPUのサポート</h3> + <h3>研究目的(2/2)</h3> </hgroup> <article> <p> @@ -64,12 +64,17 @@ と<font color="red">特別なチューニング</font>が必要となる。 そこでCeriumを用いてその差を吸収し、自動的なチューニングを可能にする。 </p> - <p> - チューニングの一環として、CPUとGPU両方でTaskを実行可能にした。 - </p> - <p> + チューニングの一環として、 + <ul> + <li> + Taskのデータ並列実行 + </li> + <li> + CPUとGPU両方でTaskを実行 + </li> + を可能にした + </ul> <img src='images/exe_cpu_gpu.png' style="height:300px"> - </p> </article> </slide> @@ -101,32 +106,7 @@ </p> </article> </slide> - <!-- - <slide> - <hgroup> - <h3>GPUのアーキテクチャ</h3> - </hgroup> - <article> - <table border="0" cellpadding="0" cellspacing="0"> - <tbody> - <tr> - <td><img src='images/gpu_arch.png' style="height:400px"></td> - <td style="font-size:18pt;color:black"> - <p> - GPU上のローカルメモリはCPUとメモリ空間が異なるのでメモリの共有ができない。 - </p> - <p> - メモリのコピー処理やTaskは、順にCommand Queueに - enqueueし、実行される - </p> - </td> - </tr> - </tbody> - </table> - </article> - </slide> - <slide> <hgroup> <h3>Cerium OpenCL API比較</h3> @@ -161,8 +141,336 @@ </tr> </tbody> </table> + <br> + <p> + ユーザが生成したTaskはTaskManagerに送られ、依存関係を解決したあと、 + 各Schedulerに送られ並列実行される + </p> + </article> + </slide> + <slide> + <hgroup> + <h3>GPUの特徴</h3> + </hgroup> + <article> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td><img src='images/gpu_arch.png' style="height:400px"></td> + <td style="font-size:18pt;color:black"> + <p> + GPU上のローカルメモリはCPUとメモリ空間が異なるのでメモリの共有ができない。 + よって、OpenCLのAPIを用いてデータを転送する必要がある。するとこの転送がネックになる。 + </p> + <p> + GPGPUは<font color="red">データの転送が頻繁に起こる</font>ようなTaskは並列度が出ない。 + </p> + </td> + </tr> + </tbody> + </table> + </article> + </slide> + + <slide> + <hgroup> + <h3>データ並列</h3> + </hgroup> + <article> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td><img src='images/gpu_data_parallel.png' style="height:400px"></td> + <td style="font-size:18pt;color:black"> + <p> + データを2、3次元に分割し、分割した部分に対して処理を行う並列化手法 + </p> + <p> + タスク並列だと、タスクごとにinput data と output data を転送しなければならない + </p> + <p> + データ並列なら全dataをGPUに送ることになる。結果的に転送の回数は減る + </p> + <p> + OpenCLでは、NDRange APIを用いてデータ並列実行を行う + </p> + </td> + </tr> + </tbody> + </table> + </article> + </slide> + + + + <slide> + <hgroup> + <h3>OpenCLにおけるデータ並列</h3> + </hgroup> + <article> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td><img src='images/ndrange_arch.png' style="height:450px"></td> + <td style="font-size:18pt;color:black"> + <p> + CPUからinput/output data をGPUのglobal memoryにコピーし、データを分割 + </p> + <p>分割したデータをWork Itemと呼ぶ</p> + <p><font color="red"> + 複数生成されたkernelに対してそれぞれのWork ItemとIDを割り当てる。 + </font> + kernelは割り当てられたIDから自分が計算する範囲を求め、処理を行う。 + </p> + </td> + </tr> + </tbody> + </table> + </article> + </slide> + + <slide> + <hgroup> + <h3>データ並列のための新しいAPI</h3> + </hgroup> + <article> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td> + <img src="images/iterate.png" height="450"></img> + </td> + <td> + <font style="font-size:18pt;color:black"> + <p> + データ並列による実行を行う場合、一つの記述から複数のTaskを生成する必要がある + </p> + <p> + 生成した各TaskにIDとinput/output dataを割り当てる「iterate」というAPIを実装する + </p> + </font> + </td> + </tr></tbody></table> + </article> + </slide> + + <slide> + <hgroup> + <h3>iterate API</h3> + </hgroup> + <article> + <p> + input data を二倍してoutput data に返す例題 + </p> + <pre class="prettyprint" data-lang="main.cc(Iterate Task 生成)"> + HTaskPtr twice = manager->create_task(Twice); + twice->set_inData(0,(memaddr)input, sizeof(float)*length); + twice->set_outData(0,(memaddr)output, sizeof(float)*length); + // paramに0~length-1(index)をsetしたtaskをlength個spawnする + twice->iterate(length); + </pre> + <p> + iterate(length)とすることで、TaskManagerがデータ並列用にTaskを生成 + </p> + <p> + この例だとlength個のTaskが生成され、各Taskに0~length-1までのID(index)を割り振る + </p> + 各Taskはinput dataの自分が割り当てられた要素に対して処理を行う + </p> + </article> + </slide> + + + <slide> + <hgroup> + <h3>iterate(Kernel)</h3> + </hgroup> + <article> + <pre class="prettyprint" data-lang="twice.cc(MultiCore)"> + long i = (long)scheduler->x; // (long)scheduler->get_param(0); + output[i]=input[i]*2; + </pre> + <pre class="prettyprint" data-lang="twice.cl(GPU)"> + long i = get_global_id(0); + output[i]=input[i]*2; + </pre> + <p> + MultiCoreではschedulerの持つメンバ変数x、OpenCLはget_global_idというAPIを用いて、 + 自分に割り振られたid(index)を取得する。その後、そのindexに対して処理を行う。 + </p> + <p> + interateにおいても、CeriumとOpenCLはほぼ同じ形式でTaskの記述が可能である。 + </p> </article> </slide> + + <slide> + <hgroup> + <h3>iterateの実装</h3> + </hgroup> + <article> + <pre class="prettyprint" data-lang="HTask.cc"> + void + HTask::iterate(long x) { + tl->dim=1; + tl->x=x; + // 1次元なのでy軸、z軸の要素数は1 + tl->y=1; + tl->z=1; + mimpl->spawn_task(this); + } + </pre> + <p>渡されたlengthはwork item のx座標の要素数となる。</p> + <p>taskにデータ分割のためのdata(dimension, や workitem size)をsetする。</p> + <p> + Schedulerはtaskが持ってるdataを元にtaskを複数生成し、idを割り当てる。 + </p> + </article> + </slide> + + <slide> + <hgroup> + <h3>iterateの実装(多次元)</h3> + </hgroup> + <article> + <pre class="prettyprint" data-lang="HTask.cc"> + void + HTask::iterate(long x, long y) { + tl->dim=2; + tl->x=x; + tl->y=y; + tl->z=1; + mimpl->spawn_task(this); + } + </pre> + <p> + 引数を複数渡せば多次元のデータ分割ができる。3次元までサポートする。 + </p> + </article> + </slide> + + <slide> + <hgroup> + <h3>CeriumにおけるGPU上でのデータ並列</h3> + </hgroup> + <br> + <p> + GpuSchedulerがOpenCLのAPIを呼び出し、GPUの制御を行う</p> + <p> + TaskManagerからTaskを受け取り、Command Queueにenqueueする + </p> + <article> + <pre class="prettyprint" data-lang="GpuScheduler.cc"> + + clEnqueueNDRangeKernel(command_queue, kernel[cur], task->dim, NULL, + &task->x, &task->y, &task->z, NULL, NULL); + </pre> + <table border="2" style="font-size:18pt;"> + <tbody> + <h3 class="yellow">Taskの持つメンバ変数</h3> + <tr> + <td>dim</td> + <td>データを分割する次元数</td> + </tr> + <tr> + <td>x</td> + <td>x座標の要素数</td> + </tr> + + <tr> + <td>y</td> + <td>y座標の要素数</td> + </tr> + + <tr> + <td>z</td> + <td>z座標の要素数</td> + </tr> + + </tbody> + </table> + + </article> + </slide> + + <slide> + <hgroup> + <h3>ベンチマーク</h3> + </hgroup> + <article> + <table > + <tbody> + <tr> + <td> <!-- benchmark --> + <table border="2" style="font-size:18pt;"> + <tbody> + <tr> + <td bgcolor="#8091B5"></td> + <td style="text-align: center;">Time</td> + </tr> + <tr> + <td style="text-align: center;">1 CPU</td> + <td style="text-align: right;"> ms</td> + </tr> + <tr> + <td style="text-align: center;">2 CPU</td> + <td style="text-align: right;"> ms</td> + </tr> + <tr> + <td style="text-align: center;">6 CPU</td> + <td style="text-align: right;"> ms</td> + </tr> + <tr> + <td style="text-align: center;">12 CPU</td> + <td style="text-align: right;"> ms</td> + </tr> + <tr> + <td style="text-align: center;">24 CPU</td> + <td style="text-align: right;"> ms</td> + </tr> + <tr> + <td style="text-align: center;" bgcolor="#ffffcc">GPU</td> + <td style="text-align: right;" bgcolor="#ffffcc"> ms</td> + </tr> + </tbody> + </table> + </td> <!-- /benchmark --> + <td> <!-- system env --> + <h3 class="yellow">Word Count</h3> + <font size="5"> + 10MBのテキストファイルを分割し、スペースと改行を区切り文字として並列にword数をカウントしていく。 + <h3 class="yellow">実験環境</h3> + OS : MacOS 10.9.1<br> + CPU : 2*2.66GHz 6-CoreIntel Xeon<br> + Memory : 16GB<br> + Compiler : Apple LLVM version 5.0(clang-500.2.79) <br> (based on LLVM 3.1svn)<br> + GPU : NVIDIA Quadro K5000 4096 MB<br> + </font> + <h3 class="yellow">結果</h3> + <font size="5"> + 結果 + </font> + </td> <!--system env --> + </tr> + </tbody> + </table> + <p> + あ + </p> + </article> + </slide> + + <slide> + <hgroup> + <h3>ベンチマークのまとめ</h3> + </hgroup> + <article> + <p> + + </p> + </article> + </slide> + <!-- <slide> <hgroup> @@ -261,7 +569,7 @@ twice[c]->set_param(0,c,sizeof(int)); twice[c]->set_inData(0, indata, sizeof (int)*length); twice[c]->set_outData(0, outdata, sizeof (int)*length); - twice[c]->set_cpu(CPU); + Twice[c]->set_cpu(CPU); twice[c]->spawn(); } </pre> @@ -307,162 +615,6 @@ <slide> <hgroup> - <h3>データ並列のための新しいAPIの提案</h3> - </hgroup> - <article> - <table border="0" cellpadding="0" cellspacing="0"> - <tbody> - <tr> - <td> - <img src="images/iterate.png" height="450"></img> - </td> - <td> - <p><font style="font-size:18pt;color:black"> - データ並列による実行を行う場合、一つの記述から複数のTaskを生成する必要がある</p> - <p>生成した各TaskにIDとinput/output dataを - 割り当てる「iterate」というAPIを実装する。</p> - </font> - </p></td> - </tr></tbody></table> - </article> - </slide> - <slide> - <hgroup> - <h3>iterate API</h3> - </hgroup> - <article> - <pre class="prettyprint" data-lang="main.cc"> - twice->set_inData(0,(memaddr)input, sizeof(float)*length); - twice->set_outData(0,(memaddr)output, sizeof(float)*length); - // paramに0~length-1(index)をsetしたtaskをlength個spawnする - // twice->spawn(); - twice->iterate(length); - </pre> - <p> - spawn_task()ではなく、iterate(length)とすることで、 - TaskManagerがデータ並列用にTaskを生成 - </p> - <p> - この例だとlength個のTaskが生成され、各Taskに0~length-1までのID(index)を割り振る - </p> - 各Taskは自分が割り振られたindexのinput dataに対して処理を行う - </p> - - </article> - </slide> - - <slide> - <hgroup> - <h3>iterate(Kernel)</h3> - </hgroup> - <article> - <pre class="prettyprint" data-lang="twice.cc"> - long i = (long)s->get_param(0); - output[i]=input[i]*2; - </pre> - <pre class="prettyprint" data-lang="twice.cl"> - long i = get_global_id(0); - output[i]=input[i]*2; - </pre> - <p> - Ceriumはget_param、OpenCLはget_global_idというAPIを用いて、 - 自分に割り振られたid(index)を取得する。その後、そのindexに対して処理を行う。 - </p> - <p> - interateにおいても、CeriumはOpenCLとほぼ同じ記述が可能である。 - </p> - </article> - </slide> - - <slide> - <hgroup> - <h3>iterateの実装</h3> - </hgroup> - <article> - <pre class="prettyprint" data-lang="HTask.cc"> - void - HTask::iterate(long x) { - tl->dim=1; - tl->x=x; - // 1次元なのでy軸、z軸の要素数は1 - tl->y=1; - tl->z=1; - mimpl->spawn_task(this); - } - </pre> - <p>渡されたlengthはwork item のx座標の要素数となる。</p> - <p>taskにデータ分割のためのdata(dimension, や workitem size)をsetする。</p> - <p> - Schedulerはtaskが持ってるdataを元にtaskを複数生成し、idを割り当てる。 - </p> - </article> - </slide> - - <slide> - <hgroup> - <h3>iterate(多次元)</h3> - </hgroup> - <article> - <pre class="prettyprint" data-lang="HTask.cc"> - void - HTask::iterate(long x, long y) { - tl->dim=2; - tl->x=x; - tl->y=y; - tl->z=1; - mimpl->spawn_task(this); - } - </pre> - <p> - 引数を複数渡せば多次元のデータ分割ができる。3次元までサポートする。 - </p> - </article> - </slide> - - <slide> - <hgroup> - <h3>CeriumにおけるGPU上でのデータ並列</h3> - </hgroup> - <br> - <p> - GpuSchedulerがOpenCLのAPIを呼び出し、GPUの制御を行う。 - TaskManagerからTaskを受け取り、Command Queueにenqueueする。 - </p> - <article> - <pre class="prettyprint" data-lang="GpuScheduler.cc"> - - clEnqueueNDRangeKernel(command_queue, kernel[cur], - dimension, NULL, gws, 0, 0, NULL, NULL); - </pre> - <table border="2" style="font-size:18pt;"> - <tbody> - <tr> - <td>dimension</td> - <td>データを分割する次元数</td> - </tr> - <tr> - <td>gws[0]</td> - <td>x座標の要素数</td> - </tr> - - <tr> - <td>gws[1]</td> - <td>y座標の要素数</td> - </tr> - - <tr> - <td>gws[2]</td> - <td>z座標の要素数</td> - </tr> - - </tbody> - </table> - - </article> - </slide> - - <slide> - <hgroup> <h3>まとめ</h3> </hgroup> <article>