%PDF-1.4
%ÐÔÅØ
1 0 obj
>
endobj
4 0 obj
(1 \040Introduction )
endobj
5 0 obj
>
endobj
8 0 obj
(2 \040Floating Point )
endobj
9 0 obj
>
endobj
12 0 obj
(2.1 \040Formats )
endobj
13 0 obj
>
endobj
16 0 obj
(2.2 Operations and Accuracy)
endobj
17 0 obj
>
endobj
20 0 obj
(2.3 The Fused Multiply-Add \(FMA\))
endobj
21 0 obj
>
endobj
24 0 obj
(3 Dot Product: An Accuracy Example)
endobj
25 0 obj
>
endobj
28 0 obj
(3.1 Example Algorithms)
endobj
29 0 obj
>
endobj
32 0 obj
(3.2 Comparison)
endobj
33 0 obj
>
endobj
36 0 obj
(4 CUDA and Floating Point)
endobj
37 0 obj
>
endobj
40 0 obj
(4.1 Compute capability 1.2 and below)
endobj
41 0 obj
>
endobj
44 0 obj
(4.2 Compute capability 1.3)
endobj
45 0 obj
>
endobj
48 0 obj
(4.3 Compute capability 2.0 and above)
endobj
49 0 obj
>
endobj
52 0 obj
(4.4 Rounding modes)
endobj
53 0 obj
>
endobj
56 0 obj
(4.5 Controlling fused multiply-add)
endobj
57 0 obj
>
endobj
60 0 obj
(4.6 Compiler flags)
endobj
61 0 obj
>
endobj
64 0 obj
(4.7 Differences from x86)
endobj
65 0 obj
>
endobj
68 0 obj
(5 Considerations for a Heterogeneous World)
endobj
69 0 obj
>
endobj
72 0 obj
(5.1 Mathematical function accuracy)
endobj
73 0 obj
>
endobj
76 0 obj
(5.2 x87 and SSE)
endobj
77 0 obj
>
endobj
80 0 obj
(5.3 Core Counts)
endobj
81 0 obj
>
endobj
84 0 obj
(5.4 Verifying GPU Results)
endobj
85 0 obj
>
endobj
88 0 obj
(6 Concrete Recommendations)
endobj
89 0 obj
>
endobj
92 0 obj
(7 Acknowledgements)
endobj
93 0 obj
>
endobj
96 0 obj
(8 References)
endobj
97 0 obj
>
endobj
111 0 obj >
stream
xÚ
|Ú¢ª,ºgÞÅöjkÊñÆòæ!HVxh Êç×ïwv7@Ц23S»>¾îï>àt¶¥³÷¯Òïüþx÷êoïòjfʤv¶Ý=ÌL'EÍÊ
öW×¶¬æÿÅ?¯\:o»+ÎÝ®Ù/Ú®þq÷?³kã$³uRÛy·=4ÇÍ~¥3µÙ¹Ûìܸ}ûö-·Ê?÷ ©ÔYYâÊ,©
&3ËÍqÝÈy~]oíºm ª²nþfÛâÑþä·ï6Çk½k\ûäÿö®HgÆ&un2ÜìºJgÙuQ%ÆÈ¾ùñÓÝ/o®ò|~sÇV3¸ÆÁ.*huðÕuÛï¯l5Úáß{dÞ^yÇïðkëùõ=üyÂ=¿ì ÙnáOsÄÖbûÀ~OM=z¿Ùÿx}
À
îå²9¤Áß-®E¯{só¦Ó}Àeúê1üÖ0Ïvxê¢ùttÝc³°~C]² X3÷|¸ãúêÚåü& ½PGÇöûÐþÜ'W×9ôîÖxüæ® þ{$|z}UT8ogløêaÿÔ\OÈ÷ß"ëZ×ÈÓTÍ%®Þ+BúÇÒ¾-·wþÈ-ÆÃî¥ \oD-|aÏ (åàr«²ù{Ðñ mýÝü·Mv-Ñ÷ß»ùQoÆ.y\0p )¸ )÷Ú(&Zî"º?ÿ˼ÑðcA´áb+üÛìvǼÝ-þMD ü?)óY"@Ú¿¼5ûÍÌË þ0Ã¥ÀíLRVÂ¨ÍØeÏÏ?}¾¹»ýùé°¨ U¢EñƳ?)Ò_gfü~ì#æ Ý(ép\³ä5tÞ²ÜWØ" lG¡
¸âi£.ëQcûG½õ¦ûOrPA"OeSL~ÓÉ :3N[à¤]"¹o§¨4͵®þû86'8¥aÃ|ý»£§³ý*Â:
bã3¸µÕàÝ}¹"%y9ÐfduT `c6`ò5¼Ê²¹Â¿ØÊYáîAXLú¬bq+´ÝdØõ!¤ð*` ^¼§£
æø¨ÌO´Ø:Çæ_ÌÐIÁ~Ïp ¤¦ö]ã
·©Y FÒc$ë¶2¬ç©¬õA_,y4+¤VÄxÜd.©R ±j}¶Ííüð§l·kpù-O%DfNëdafÜp ÷v®m'¦*'Ä(Ê@«®øÎÌÆÈ¯.¼Òö¾EÝ
³±sèþPÊjÎq$½Æ{ûl#?íT`=ù|o*Ò"Ýaò'¤¸RÞ¡Md%0^àÕM@àJ¸×
ô`±P¢j_¯@/á¡_·2`Vf"ó¢pQY×ù|ÁÀ!óïü_Eöb,¨ð!Ù0Ñ K¹êª2çpÐ]$`& ãJzâréd
¤Í½zÇ&`ÐMF>wAÀeÚÕºeyG#¼ÅcD%ðÑ,p^L/ºí:¼~TÎ'O
·
]æx,ZªÚ;1yð¥×JÐnÚ¿r§÷F§%¸õ5Lf?
³7o£ffÊH5 a¹üÒMÈLN;Æ@»û:K;¶â¨¯êhS§õ|j°eëäOÏcÕ"N Lf]à#6¦äøZ÷"« h.\Vl¼¿J-ªA`vuoèMLDs;A»çߥ`ÀµAï4ÀzGÂ,4)ÚuÀ[³ iÕÐ:dÍ&Ï{Oÿ½çñe¤-¬ÑvB éq+v+«RÅ
¬}Î SqÌ;Ð=KÕÞv`8Pw©Ndÿ}áué3jº°ÁÚ_Òå9=PCé´þ±nê¤ð¸òâ{/ÅÈ[Ä7Â.:r'Z,Î.¥6oô¯ZEI| ú_"·ÚeÞ{Ãæ»¼5¯óF
Ïà0
ô²å$V4m£¸Ýõ"w|~»ôÔj§Î$sα+-§ÀVFÞÓe( QRÔ¬øAÓó´Ï?þýÍ'nÇxóùtð¿»³v¡ØÉȦtÎþÀ$Qõ2¡»«æ^d8IGVIêÊBDt½H¥rìÄ^.Ì[«é8I°KÅhÏ£µ¦TɰÞ;ñ ÙOν׵÷ùïò¬úM
))_´Ïø0EÕr¬nèÞãI{±jñªØX¨#
×:ø9ɤw¡ºû=PeÍO$µoøm0'Û±ëRÛnB|Ò@½¨¯:6B&áASè-«Àkó^ÁFB!$¢Ð±m2îé>:9Ññk´!,×f2Îâ!ÊjaêhS÷e>84ª:Åp¨\ü$ðú ÜD¶ÓcõÅܦiÅï{ËöÔ[¦>`(K÷ܼGrÃ?A6ÐwþPk 4RÜó¿EÌÜØ
!?ÚÅ&þDñ¥4ÓÜèÀ´Å³8ß9IÕEsàת²ùƯ~ÙUÚ
X=娨h|×
ýkðe¨Hå|õ¼ð$VèïÀA$T'A4wDà8¿5ëeµl]]BÒàØÇjmáױ㩠RXã°ùÑÊ£TÁÂõð¹#XÄ
8|xø¾\pPGÞ6Ò"DeSr¾3smù;¹q¸ dÒ=#/w¬lLøPi%ä[Gú]b4.6ô »öò`hèe©jX±½ÀÆ
PLq$:î´DKÉÐ*ù##÷ 7ħG3é
ÛÒNeªçéj?QCl]åd]r."1q^pN>Æs%MHãÞ ÛvAÁù]Ëç?)±;¡¨UnññÏɤLGn#E"}«¦t~óñ37¼Ô6MlïW39eÇ¡¿SX"Wô-j¶Ì9|¼^Jð®,æÅÉÅAøbC.¯\jFf
Ã:òÉ0ov,4cò8sÙ(ôR$ºXV=¿¤í°]Q°.'C¿Aý½ZSÀk(YÀÃa'ðÅ7`#ö4®$Fì8ªb:óBù!$d2åQs2hMØ4±FRÛn·é%ö19lü?®LÊÂµÕæØ°ß}J£ùLy·8
$EÓCëLzÆí0°)wÇv-Û}:*8Sè:O}Ë8Û2V]³?¢çÍq}x:rç¡mJ¸ÂÍÇ&º(ý °}îT0HûÃqCió;4kyòðD'Ö®íÈ=ýõOSÛqÈ. ÛYµÉÄ^7KJç_»Íj-Cmj·8Mÿ] äÈláP³[ÞÅj¦ìÝ߯7W`ÞÝ~xÏû|üùöw)M¬æûmbtâØûX¯pì§³kÅ0»öNDÖ83§Ç$Á¢ò³z~á} ýH¯£dç¤ÒæØ >p»ÞU1 µ¹LMH`«, ñiÔR»ßü5gÈQºx£}Ö E¿"áeK®ÏgóIúQb¡þ.':¡ÄÂ*Äz^ªáÕÀåæÁlæ§i¶JRhNL}âãg¦]H½?!kO2üñFätÐòm#¨GËlm§ÜA|¼L PªËÿFG¤±_yìäà)ª-çASGÃÃç(¢Ûà¾ì´$ek¨¯åbF\â=üpu]d+RÅEº÷)?zEöØj?±8깤¶ÕÎ÷á_N±à88@÷TÔñr&Ð pÚêºBÃåøò&tÏo%¬à£ÌÈòÌ_E'ÀT>iÔ±±mãyg xÁQI¼Ñ±çþù;9gæ¡×jLÚä¸#Õw+b§/0>Õ w¢ÞÌÌ4ªP0iäÒÛ»WÿW(ªÌÌ"©eXCVÏ;gY4ïfy×Î^ýï°/Ö`Î¥IQ°K²R`+6 ykÃppóÂ$%ÈÍ!U¸´¼n ìçèî@ñ ζ¬´ßI$S_\VÙ¤ÈFÀ=ø7Màq1cHÛôÚØÂE>¹EjPïL&á&¡Ôûº~9uCjå`|VjfÆi3«£~èÃaÄ ý xH*¦EÆK_aÑìWíT½`TrÁ %Y!4¯o9¾(µ)gâçFHTucÑøÀ×Õj7hÝJw »«SÍ!6GZ»SáCÕµü ȦBF÷e¡Ñ .rj=W Edé¹V,ë4½5HõÊ:¢ ]'¯ÎGDoBecGôHÎÇ¢YLb A= ái &Öl¸aærŪßÂW¯0´§ëøÊé°¥¬ùtÅhßjx}$VLâ¬Eu¡Ø{î¸ó1 ½¶å()a2pì[hÖ£æûs¡Á^3ÈRZ%ô.´F@ L"!{ Í3Ç[qO²©Ìo`è"õSd-3Ý6§Ke+¬s±Ü/mU5,'fs±æ©¸ü|³IÕP×I^TCª)S%sc0Ên"¿XÉä@]Å ë&üRìT䱿¦øC¼V£×ÿ&*Á/4órTAȨíQ¥ BêF á.7= ÃXDqu¹ÅPÁl3$·"G $øT Æ °F-¢vÁTæL ¾þFë"äuwÒG ¢Âr|ü¿1h´*è^s¯BQ9x6vÚ§ ;DÅÎ)rVÑ+øz¯¢Óæq}üFãâ)¾éöàû¡Eëx|ý÷Ìûº¶ço È=ÿÞ7}aÑ1.2:B1¶§\ 9ÀLÛ_xsÂ+ÁÔès\ûADnyÄîÐLjäã¨Öü{NFÊaY顦VÙB5uLé©Gg£é5z Ì£Ül#ÒiøhùßÓ4=µJR 2ÄÔV¶§ÏH8 ÏOÈo;Ý#iQßߢò[wGcÊYÔ¥«8bXâE¡PDr¼YbðX4 CªSáGÿ²¡=ÝjËü0aç%eáo0-Åh¡á×VSEhËYîí¹íÓØ rOE°h¾,¢ Å«wÎ1 ¡B½JiMùùIÆyü-±(9µ.ËȸβIá@éÌÍ5v¸u]lòïjLð¡RÆQ?#_Aî±´UeGEa¾zÓr ©ñ,øD"BØ6¶äË cæ&µî5ÇËkýsù ±¬|BùƧRÌH`ÌÈ«e,Õ´^òCEÍaÇý=gMOÊÅû¸pR9|1ÿïV¿ÁQ ¦½±³eÁ÷,9橸¶>³ú8fýZüdÉ`[ lk¡ä `ÑHmÐ@ÈQä+pq?áÑè©_è)ë|Yº[g7Ë+pK¿â>ÚÈ}Ì .ï·¥ÝòóGáWêpô½ÀµÙ7ØDd87msiçKÊ5`ªEûÉ ÁÓàÕ¹8äøWÿåå¿ë?ûxf*X-Ú9hÑË}[&ykdIY¾Øçpø%³A ¾PY]@EŸ`¤Æ¤/rJ ÐÑudx¹iHû|Mre¢ÿMù5né8!úq/Ó2a>FµI,èQS¦î¯¢zB'y]âz ÜäÑí@§w,^Õee÷¬$Ô~ß_~¹ô"" Ï´Ijío¸¸Uê½Ç{ýI4»V@þS½ÆnikñS°A ©ë3_¶óF%ñò¡ùÀßXj) eÖµ7_ð]Ûu¬÷ÍÒ`%ÕáÓUêPWÎãï&'ÒàçbÝ\q7~¯©hqûjnN¨J^õh§¨ÚòlÖsî_ËG_ VÃ»ÈÆöéûkÅýŶKîógò-dÃËR ÃNÍ-çþÝ|'ÅSTâÒ^S±µÿsþ»[ÇÒH'f°Õôü~ÑÈ?+>Srî|³Ï)òÿCÔý endstream endobj 98 0 obj > endobj 99 0 obj > >> endobj 100 0 obj > >> endobj 101 0 obj > >> endobj 102 0 obj > >> endobj 103 0 obj > >> endobj 104 0 obj > >> endobj 105 0 obj > >> endobj 106 0 obj > >> endobj 107 0 obj > >> endobj 108 0 obj > >> endobj 109 0 obj > >> endobj 112 0 obj > endobj 115 0 obj > endobj 117 0 obj > endobj 2 0 obj > endobj 6 0 obj > endobj 10 0 obj > endobj 110 0 obj > /ProcSet [ /PDF /Text ] >> endobj 133 0 obj > stream xÚå][ܶ~ׯ·´jÕ4q! º*²cy½d³¼·dz¦{FSÛÓ=鱤ýõ{.¸ §{,»¬D¶Ô$ pp.ßÛöâÛÿýêí/Þ¸¾é4o¯/:ÕØÞ]Xë!û·ë¿,Þ¼tz±?¼\Ê^,6^ÅêîþÝÂß ¦ÊÅ\¾K·wXÒ6ðÏ]ÞÂß«Õkùñeg+¬àqÃ)ûkþõOÑõõë¹ðéýåËÿyû/_¼"k·}#´NQËEòé¦w1_aþÅR* ÝKÑ6}ç»/Ý`ÿØø#þ³{)-µoÖ/ʨÅíåâò @C9åöÈ%ÚJ; MoûÐ/Çí5.äÿ«Ô¤úÆu±/+5᫤EÞ¿DÀμã&bÚÊ7wµ%0¦é¤(è¯ÐØg¬e©:äHo|Á%ÐÊ,6ÌcêâïexæÈϬ®C¾`60ÿÒ·y·Bª|ä2÷Tõþ^4/]Û.ÞÆiu~Q"ö¦-»QF8Iäéh©uÏÝÅ·0ÁQ×-6s±Ý{Ìݱ!k.CxÈá9Dì4ÇxH0{¸çK?¨©æÉyºfúaËUÙm"·¶þPK:|Áê!ÌãΣª¥ÇÆT¶´*ý>øßoo©(P1_>qOÍǵ Ë ¼ß!µ³áC[_tDàø(iýhc/ÖYw°ÔjÇïÆRÇÌ?qÇãý[go£è=òQ/µæbHjßoÝ;bøûÝ7ÆéÞvzßk§1¦ÞíiÀÕ51dü-Ìiþ[^Xä1Lðª#ÿúîæísi8}çnû%Þn¸H%/þ»ù_¹Á´0>~p|k[ ]íZd(¸j/ü võ&ËgoÀzhT;Á+_+\ù~ãñûÊcØTuV7Ú3Ö9Ö5×2¦ú7Á[*UL *q{ä_Z±÷Ƕ}£lBõ½GÅ*Ul?CBþ v¸Óß/Þï÷r°ÚÆ´ß|íwö=ÖI£ÕÆ]n.Âå÷ß¾øæí¿½Àqj!غ£ ²N\\ݽ ô®±°/û¾6×/þmZü0ºé`r ÅÖ7 ß)¸|9lª~Ø ¨Ò:uj\ÛȾ4@Ðn¾:¶$ÝÛ"`{¶ý´×§¶Ftmcáé¢9 ¥µÿOäÀË^4 =@ÊF ËU¬=}q\FIîL:Ã"Öé, LUêSè\4@?ç£aG"ÝËS$:(§µÈ=CjàyÂtú1ç3£8e-úÆH¿¬ã®bì"l¸7;¾¿ Û¡]ß.öǰccs}.¶Qm£Á¢ËÆç¢à ]ÆÈ(³ÿ¹Í0ötAüÈÜdV`x÷!¼,m Â'ïºuãú(hÿµmÛñ6 ¤ÐQV_^@[ êp}þÐMwéýhÃZº@½ß@¶Úïõw-´xͯ¯®««ã·¡PM¯mI=ì3Kßà@±;6ÆÉ«CØ,d&5ÜÂ>óxÈtxàJDE#Ì?ïVå>]£×5gKåü¤Ùû$!F5HtkZ¼ jâqÃÐvå¹Ò£/0#Ì7¼¦FYwÚMT2+o.¸9D½X}_á£-Ï¥ÉÑ{GðÖ'bE÷,¶ELÏ"eHjÈj&q_òÂ>{͵çÓÇͤ5Ø ÄG¸[P]×yúR~¿ ³¯
¯zRR°FT¾»Öò°ÎXå#«8b´¶'eâÝÍ+ÜúÅ1²!áææ/N^íä÷qã²m&A~¥ÆH©£ÛõÔH³Ñvþò«8wuðÅn«¨nbWß5I}£ô°¤áú¸ºóWqéYÏ·ScÈ&"eÁWå´UL+ÚF¸r0ñ^\µD,z¶g\¯GËcî0¡±õ+äX¹þ@¬õ¢ÂSNß?Ø©môÉX4YI6A´ó¶)¬iuH:,nâ+Soí5t¹Ýv8`ûmØ)w=*¼Xáö#ç$åUÕUq¬t`ð Âóò³mYSü®V^Y\Jç'üV ]Í ¿ñJ~2±rDÏeÝèùÐdXJÅW3Ës©Z^X«KoÄdØî±ï9ùøÈ 8ZåÝM|ÚL¶s;^Ñ*û®q"Z^×Ä mcþ«JP¾ªImgRK%D¶ô-AÜod;°n~]kÁ3«-Èy $ÆÝÞ/JàµÄsx> a,·Èz7²ö:oíͪæByG¶.Q>óy/rp;Þ ÑmåÖF³öfµ ²d4h¡s¤ýæÎÕmÎ@+æ*lëjÑL¨Ô¦·¨Bn#A°ÄvÚ¦3®¦ÏÊeºd 椵¶0zky^)/å ¤ÉŨ/¥ò·6-NV DZYy-ëmYSÞ~ z¨d£º8_Úôô§VõRëÆíªëi>ÓÊóFeJäôШ_õЮ¯«#£70ê³Øb5¬b(Ȳ8~%^ î áRÆ5öOÕ¦¢il¦$vø2ÕªhÌã üýO âET9±ÇÔT¢±FÌ 4ñ´N½#étGrÍQolg?ªdKTs Õ6[òûÁ.¥üòÉ9¨°I¢ÑçÄ+¤ÊÎ I®±½Ð®¨¡oZ+Nt¤ZUùvR4Yö±²uTÐ7Gpq þöȲOÅ(ºÓûJí749én¦Û°¾_ùÉq{JÄqk¼\ª¦k×ï7¨´DæÝD I(öïÃø]cR>JUBàöÁ¹Ô.J*ËñCFÈÍ}(_E£ Ý©MBU?ESW{禴¶fßÀé¡Kk&¢ïi×±å.° î%|³I¬ ÀH¼¯«, ÚÜ>VÊòpE¥*èJÊå»`_ z®¼+ù¼KvÖáí ïà&DHá,¤w\]EW÷mÐ5{åí%fvOvÏW|õþ%;ÛÉÒulÜúòqæyKÍ·mÿsJÏj=ò¾L¶.¾ñSÝ®queÐlú¿otçD!3vÓÒì»§@}²4pxº0ðÑPÔÆwi`Ý*ÛO¹>géX&ÕFL,úÿ-§ìsdz)çû¿'a¹g(î¯õ¹ Î36ì%v:³ÄÜKLJÛÀS%vØ1ú¨ö)a!_z+µG¨¨u;13x_Ci¨Ú}R¹bh²®®'XÇ/ËO¢)¨wm÷ù-öÑB´ ©Â £,ßY=D¯Koý¿N~+ö4-¥V y.Êý*¸á!7÷zðìRÔ½ÌAb¼¸ÚßeÈ 3åÆð° Û3N×:¯ß° øÏºäó×É +öí3qÒ®]ü}Xb¿óèQ*~¼¥ª3ÿ£Ð±®MðÍ?wà >áU¾Ü¿ Y{þÖ#[´fqÒ%)L ^:å/ô:§ÏO*Øà>x4Î §ÜG*H6°c0ÉákõÐsW];á:§IåAY#'º] Jè¼h£ ³þ¡Ê602Áö¢ç,V Ä&àlÝÊó³¬sRʺuNwŪðÒ(Ä"Ö5JéñOÙ²úÜé#C½k`»rÖÙ-öä¡>ex¼ÐÆÅ.e?ãÀ4Ââ¢Ç6Ãñ#øì>®Gc·ýâ»gfxhößêF;úܯÈTÅ-ìBgÓ`¨Dñ ÄSDçAI` wB\C L[²Ñ¹¸lóÉï0½£ SbÄ@ Ì6-Judåɬ ÔR~¶¬Ã»E×5pÀ1) û5/dɽ¦XÕóT¿Á¢[å¡`þ©8²\ »ÈÐý^EoCP¥MI PsâDSøh$mLE»ìãUÀö³ ç'Î`ëÇÇRÞa×|¹ òê p¾:&DÕ