Update HIP definition (#2134)

* Update what is hip

* Update HIP runtime page

* Update images

* Remove omnitrace

* Quick fix

* Feedback fixes

* Minor  fixes

* Update SAXPY tutorial

Signed-off-by: Jan Stephan <jan.stephan@amd.com>

---------

Signed-off-by: Jan Stephan <jan.stephan@amd.com>
Co-authored-by: Adel Johar <adel.johar@amd.com>
Co-authored-by: Jan Stephan <jan.stephan@amd.com>
이 커밋은 다음에 포함됨:
Istvan Kiss
2026-01-12 14:44:21 +01:00
커밋한 사람 GitHub
부모 054bf836f1
커밋 11c294d586
8개의 변경된 파일152개의 추가작업 그리고 515개의 파일을 삭제
+28 -82
파일 보기
@@ -1,125 +1,71 @@
<mxfile host="65bd71144e">
<diagram id="zBbb_w2fufU70cdOGtND" name="1 oldal">
<mxGraphModel dx="1584" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="660" pageHeight="610" background="none" math="0" shadow="0">
<mxGraphModel dx="1438" dy="1349" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="660" pageHeight="610" background="none" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="5927" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#5E5B61;fontColor=#FFFFFF;strokeColor=none;spacing=0;" parent="1" vertex="1">
<mxGeometry y="-30" width="680" height="380" as="geometry"/>
<mxCell id="5927" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#342C3B;fontColor=#FFFFFF;strokeColor=none;spacing=0;arcSize=6;glass=0;shadow=0;" parent="1" vertex="1">
<mxGeometry x="280" y="-70" width="460" height="470" as="geometry"/>
</mxCell>
<mxCell id="5945" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C23555;fontColor=#FFFFFF;strokeColor=#A20025;" parent="1" vertex="1">
<mxGeometry x="10" y="-10" width="660" height="30" as="geometry"/>
<mxCell id="5945" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#272130;" parent="1" vertex="1">
<mxGeometry x="340" y="-10" width="340" height="50" as="geometry"/>
</mxCell>
<mxCell id="5946" value="&lt;font face=&quot;Helvetica&quot;&gt;HIP Runtime API&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="75" y="-10" width="530" height="30" as="geometry"/>
<mxCell id="5946" value="&lt;font style=&quot;color: rgb(255, 255, 255);&quot; face=&quot;Helvetica&quot;&gt;HIP Runtime API&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="360" y="-10" width="300" height="50" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5953" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="10" y="80" width="330" height="260" as="geometry"/>
</mxCell>
<mxCell id="5925" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;fontColor=#FFFFFF;strokeColor=none;" parent="UvHuP5o6jSuoLTm0AUZA-5953" vertex="1">
<mxGeometry width="330" height="260" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5952" value="" style="group" parent="UvHuP5o6jSuoLTm0AUZA-5953" vertex="1" connectable="0">
<mxGeometry x="16.67" y="190.00279999999998" width="293.33" height="45" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5950" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#60a917;fontColor=#ffffff;strokeColor=#2D7600;" parent="UvHuP5o6jSuoLTm0AUZA-5952" vertex="1">
<mxGeometry width="293.33000000000004" height="45" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5951" value="&lt;div&gt;CUDA Driver API&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="UvHuP5o6jSuoLTm0AUZA-5952" vertex="1">
<mxGeometry x="10.9643478387712" y="7.500000000000001" width="266.79913074343256" height="30.000000000000004" as="geometry"/>
</mxCell>
<mxCell id="5948" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.358;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#FFFFFF;" parent="UvHuP5o6jSuoLTm0AUZA-5953" source="5967" target="UvHuP5o6jSuoLTm0AUZA-5950" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="103.33500000000004" y="108.22000000000003" as="sourcePoint"/>
<mxPoint x="85" y="145.6" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5966" value="" style="group" parent="UvHuP5o6jSuoLTm0AUZA-5953" vertex="1" connectable="0">
<mxGeometry x="16.670000000000016" y="64" width="210" height="45" as="geometry"/>
</mxCell>
<mxCell id="5967" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#60a917;fontColor=#ffffff;strokeColor=#2D7600;" parent="5966" vertex="1">
<mxGeometry width="210.00000000000003" height="45" as="geometry"/>
</mxCell>
<mxCell id="5968" value="&lt;div&gt;CUDA runtime&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5966" vertex="1">
<mxGeometry x="9.499565493273565" y="7.499999999999974" width="191.0060936696582" height="29.999999999999996" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5982" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="270" y="60" as="sourcePoint"/>
<mxPoint x="270" y="270" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5955" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;fontColor=#FFFFFF;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="350" y="80" width="320" height="260" as="geometry"/>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5955" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;verticalAlign=top;strokeColor=#ff2424;fillColor=#781414;fontColor=#F0F0F0;arcSize=6;" parent="1" vertex="1">
<mxGeometry x="340" y="80" width="340" height="260" as="geometry"/>
</mxCell>
<mxCell id="5955" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="360" y="270" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="5956" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C23555;fontColor=#FFFFFF;strokeColor=#A20025;" parent="5955" vertex="1">
<mxCell id="5956" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#431111;fontColor=#FFFFFF;strokeColor=#FF2424;glass=0;" parent="5955" vertex="1">
<mxGeometry width="140.00000000000003" height="45" as="geometry"/>
</mxCell>
<mxCell id="5957" value="&lt;div&gt;ROCr runtime&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5955" vertex="1">
<mxCell id="5957" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;ROCr runtime&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5955" vertex="1">
<mxGeometry x="2.51" y="8.75" width="134.99" height="27.5" as="geometry"/>
</mxCell>
<mxCell id="5958" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="520" y="270" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="5959" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C23555;fontColor=#FFFFFF;strokeColor=#A20025;" parent="5958" vertex="1">
<mxCell id="5959" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#431111;fontColor=#FFFFFF;strokeColor=#FF2424;glass=0;" parent="5958" vertex="1">
<mxGeometry width="140.00000000000003" height="45" as="geometry"/>
</mxCell>
<mxCell id="5960" value="&lt;div&gt;PAL&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5958" vertex="1">
<mxCell id="5960" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;PAL&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5958" vertex="1">
<mxGeometry x="5.233043662182416" y="7.499999999999999" width="127.33739577977217" height="29.999999999999996" as="geometry"/>
</mxCell>
<mxCell id="5962" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="405" y="144.91" width="210" height="45" as="geometry"/>
<mxGeometry x="420" y="172.91" width="240" height="45" as="geometry"/>
</mxCell>
<mxCell id="5963" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C23555;fontColor=#FFFFFF;strokeColor=#A20025;" parent="5962" vertex="1">
<mxGeometry width="210.00000000000003" height="45" as="geometry"/>
<mxCell id="5963" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#431111;fontColor=#FFFFFF;strokeColor=#FF2424;glass=0;" parent="5962" vertex="1">
<mxGeometry x="-60" width="300" height="45" as="geometry"/>
</mxCell>
<mxCell id="5964" value="&lt;div&gt;CLR&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5962" vertex="1">
<mxGeometry x="7.849565493273624" y="7.499999999999999" width="191.0060936696582" height="29.999999999999996" as="geometry"/>
<mxCell id="5964" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;CLR&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5962" vertex="1">
<mxGeometry x="0.228591563677206" y="7.499999999999999" width="179.5457280494787" height="29.999999999999996" as="geometry"/>
</mxCell>
<mxCell id="5965" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#FFFFFF;exitX=0.823;exitY=1.047;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" target="5963" edge="1" source="5946">
<mxCell id="5965" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="5946" target="5963" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="510" y="60" as="sourcePoint"/>
<mxPoint x="640" y="290" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5969" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;" parent="1" edge="1">
<mxCell id="5969" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;strokeColor=#FFFFFF;exitX=0.762;exitY=1.014;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.545;entryY=0.027;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="5963" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="570" y="190" as="sourcePoint"/>
<mxPoint x="570" y="270" as="targetPoint"/>
<mxPoint x="588.5" y="217.41499999999996" as="sourcePoint"/>
<mxPoint x="589.3" y="271.2149999999999" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5971" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;entryX=0.661;entryY=0.007;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="5956" edge="1">
<mxCell id="5971" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;strokeColor=#FFFFFF;entryX=0.487;entryY=0.014;entryDx=0;entryDy=0;exitX=0.228;exitY=1.003;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" parent="1" source="5963" target="5956" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="453" y="190" as="sourcePoint"/>
<mxPoint x="453" y="220" as="sourcePoint"/>
<mxPoint x="450" y="270" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5981" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#FFFFFF;" parent="1" target="5967" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="132" y="60" as="sourcePoint"/>
<mxPoint x="95" y="140" as="targetPoint"/>
</mxGeometry>
<mxCell id="5972" value="" style="whiteSpace=wrap;html=1;strokeColor=none;fillColor=light-dark(#FFFFFF,#EDEDED);rounded=1;arcSize=27;" parent="1" vertex="1">
<mxGeometry x="450" y="113" width="120" height="24" as="geometry"/>
</mxCell>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5957" value="&lt;font face=&quot;Helvetica&quot;&gt;&lt;span style=&quot;background-color: rgb(77, 77, 77);&quot;&gt;AMD Platform&lt;/span&gt;&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="440" y="84" width="140" height="30" as="geometry"/>
</mxCell>
<mxCell id="5926" value="&lt;font style=&quot;background-color: rgb(77, 77, 77);&quot;&gt;NVIDIA Platform&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="10" y="80" width="330" height="34.0392" as="geometry"/>
</mxCell>
<mxCell id="5973" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C23555;fontColor=#FFFFFF;strokeColor=#A20025;" vertex="1" parent="1">
<mxGeometry x="10" y="40" width="330" height="30" as="geometry"/>
</mxCell>
<mxCell id="5975" value="&lt;font face=&quot;Helvetica&quot;&gt;hipother&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" vertex="1" parent="1">
<mxGeometry x="10" y="40" width="330" height="30" as="geometry"/>
</mxCell>
<mxCell id="5976" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;exitX=0.823;exitY=1.047;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="175.59000000000003" y="20.00000000000008" as="sourcePoint"/>
<mxPoint x="176" y="40" as="targetPoint"/>
</mxGeometry>
<mxCell id="UvHuP5o6jSuoLTm0AUZA-5957" value="&lt;font face=&quot;Helvetica&quot;&gt;&lt;span&gt;&lt;font style=&quot;color: rgb(197, 38, 38);&quot;&gt;&amp;nbsp;AMD Platform&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="440" y="110" width="140" height="30" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
하나 이상의 라인이 너무 길어 파일 Diff가 표시되지 않음

이전

너비:  |  높이:  |  크기: 14 KiB

이후

너비:  |  높이:  |  크기: 11 KiB

+65 -115
파일 보기
@@ -1,155 +1,105 @@
<mxfile host="65bd71144e">
<diagram id="zBbb_w2fufU70cdOGtND" name="1 oldal">
<mxGraphModel dx="1547" dy="1302" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="660" pageHeight="610" background="none" math="0" shadow="0">
<mxGraphModel dx="1726" dy="1539" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="660" pageHeight="610" background="none" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="6033" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#5E5B61;fontColor=#FFFFFF;strokeColor=none;spacing=0;" parent="1" vertex="1">
<mxGeometry x="110" y="-320" width="480" height="490" as="geometry"/>
<mxCell id="6033" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#342C3B;fontColor=#FFFFFF;strokeColor=none;spacing=0;arcSize=6;" parent="1" vertex="1">
<mxGeometry x="160" y="-340" width="560" height="560" as="geometry"/>
</mxCell>
<mxCell id="5981" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="130" y="60" width="210" height="90" as="geometry"/>
<mxCell id="5988" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#272130;" parent="1" vertex="1">
<mxGeometry x="200" y="-23" width="480" height="63" as="geometry"/>
</mxCell>
<mxCell id="5982" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;fontColor=#FFFFFF;strokeColor=none;" parent="5981" vertex="1">
<mxGeometry width="210" height="90" as="geometry"/>
<mxCell id="5989" value="&lt;font face=&quot;Helvetica&quot; style=&quot;font-size: 14px; color: rgb(255, 255, 255);&quot;&gt;HIP&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;strokeWidth=2;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="284" y="-3" width="320" height="20" as="geometry"/>
</mxCell>
<mxCell id="5983" value="" style="group" parent="5981" vertex="1" connectable="0">
<mxGeometry x="7.7419872652362365" y="8" width="192.50000000000003" height="45" as="geometry"/>
<mxCell id="5990" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;verticalAlign=top;strokeColor=#ff2424;fillColor=#8F1414;fontColor=#F0F0F0;" parent="1" vertex="1">
<mxGeometry x="200" y="68" width="480" height="110" as="geometry"/>
</mxCell>
<mxCell id="5984" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#60a917;fontColor=#ffffff;strokeColor=#2D7600;" parent="5983" vertex="1">
<mxGeometry y="2" width="192.50000000000003" height="45" as="geometry"/>
<mxCell id="5991" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#431111;" parent="1" vertex="1" connectable="0">
<mxGeometry x="220" y="78" width="450" height="50" as="geometry"/>
</mxCell>
<mxCell id="5985" value="&lt;div&gt;NVIDIA runtime&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5983" vertex="1">
<mxGeometry x="11.998194444444442" y="13.01" width="168.50166666666664" height="18.99" as="geometry"/>
<mxCell id="5992" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#431111;" parent="5991" vertex="1">
<mxGeometry x="-9.57" width="459.57" height="50" as="geometry"/>
</mxCell>
<mxCell id="5986" value="&lt;font style=&quot;&quot;&gt;NVIDIA Platform&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5981" vertex="1">
<mxGeometry x="40" y="63" width="130" height="20" as="geometry"/>
<mxCell id="5993" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;AMD runtime&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#ffffff;" parent="5991" vertex="1">
<mxGeometry x="76.12249594696678" y="11.7042" width="288.1851063829787" height="27.997199999999992" as="geometry"/>
</mxCell>
<mxCell id="5987" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;" parent="1" edge="1">
<mxCell id="5994" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="5988" target="5992" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="315" y="45" as="sourcePoint"/>
<mxPoint x="315" y="70" as="targetPoint"/>
<mxPoint x="456" y="38" as="sourcePoint"/>
<mxPoint x="470" y="64" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5988" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#9C2A44;fontColor=#FFFFFF;strokeColor=#4c1523;strokeWidth=5;" parent="1" vertex="1">
<mxGeometry x="300" y="-17" width="260" height="60" as="geometry"/>
<mxCell id="5995" value="&lt;font face=&quot;Helvetica&quot;&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;AMD Platform&lt;/font&gt;&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="290" y="143" width="300" height="20" as="geometry"/>
</mxCell>
<mxCell id="5989" value="&lt;font style=&quot;font-size: 14px;&quot; face=&quot;Helvetica&quot;&gt;HIP&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="300" y="-17" width="260" height="20" as="geometry"/>
</mxCell>
<mxCell id="5990" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;fontColor=#FFFFFF;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="350" y="60" width="210" height="90" as="geometry"/>
</mxCell>
<mxCell id="5991" value="" style="group;fillColor=#A50040;fontColor=#ffffff;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="360" y="70" width="192" height="45" as="geometry"/>
</mxCell>
<mxCell id="5992" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#962744;fontColor=#FFFFFF;strokeColor=none;" parent="5991" vertex="1">
<mxGeometry width="192.00000000000003" height="45" as="geometry"/>
</mxCell>
<mxCell id="5993" value="&lt;div&gt;AMD runtime&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#ffffff;" parent="5991" vertex="1">
<mxGeometry x="8.638736842105262" y="7.497" width="174.72" height="29.996999999999993" as="geometry"/>
</mxCell>
<mxCell id="5994" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="5992" edge="1">
<mxCell id="6003" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;strokeColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.229;entryY=0.02;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="6005" target="5988" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="456" y="44" as="sourcePoint"/>
<mxPoint x="470" y="70" as="targetPoint"/>
<mxPoint x="309.5" y="-110" as="sourcePoint"/>
<mxPoint x="310" y="-26" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5995" value="&lt;font face=&quot;Helvetica&quot;&gt;AMD Platform&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="365" y="123" width="180" height="20" as="geometry"/>
<mxCell id="6004" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#272130;" parent="1" vertex="1">
<mxGeometry x="200" y="-167" width="220" height="45" as="geometry"/>
</mxCell>
<mxCell id="6003" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.855;entryY=-0.018;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="6000" edge="1">
<mxCell id="6005" value="&lt;font style=&quot;color: rgb(255, 255, 255);&quot; face=&quot;Helvetica&quot;&gt;hipLibrary&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#ffffff;dashed=1;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="240" y="-167" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6007" value="" style="group;dashed=1;strokeWidth=2;strokeColor=none;shadow=0;" parent="1" vertex="1" connectable="0">
<mxGeometry x="325" y="-95" width="230" height="50" as="geometry"/>
</mxCell>
<mxCell id="6008" value="" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;verticalAlign=top;strokeColor=#ff2424;fillColor=#8F1414;fontColor=#F0F0F0;" parent="6007" vertex="1">
<mxGeometry width="230" height="45" as="geometry"/>
</mxCell>
<mxCell id="6009" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;rocLibrary&lt;/font&gt;&lt;/div&gt;" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;rounded=1;strokeColor=#ff2424;fillStyle=solid;fontColor=#F0F0F0;fillColor=#272130;" parent="6007" vertex="1">
<mxGeometry width="230" height="45" as="geometry"/>
</mxCell>
<mxCell id="6010" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=1;startFill=0;strokeColor=#FFFFFF;exitX=0.986;exitY=1;exitDx=0;exitDy=0;entryX=0.234;entryY=0.021;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;" parent="1" source="6005" target="6009" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="309.5" y="-104" as="sourcePoint"/>
<mxPoint x="309.55999999999995" y="-60.975106382978765" as="targetPoint"/>
<mxPoint x="386" y="-111" as="sourcePoint"/>
<mxPoint x="370" y="-86" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6004" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#9C2A44;fontColor=#FFFFFF;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="274.5" y="-150" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6005" value="&lt;font face=&quot;Helvetica&quot;&gt;hipLibrary&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#ffffff;dashed=1;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="274.5" y="-150" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6007" value="" style="group;dashed=1;strokeWidth=2;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="360" y="-80" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6008" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#962744;fontColor=#FFFFFF;strokeColor=none;dashed=1;strokeWidth=2;" parent="6007" vertex="1">
<mxGeometry width="140.00000000000003" height="45" as="geometry"/>
</mxCell>
<mxCell id="6009" value="&lt;div&gt;rocLibrary&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="6007" vertex="1">
<mxGeometry x="6.299078947368418" y="7.497" width="127.39999999999998" height="29.996999999999993" as="geometry"/>
</mxCell>
<mxCell id="6010" value="" style="endArrow=classic;startArrow=none;html=1;rounded=0;strokeWidth=2;startFill=0;strokeColor=#FFFFFF;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="386" y="-105" as="sourcePoint"/>
<mxPoint x="386" y="-80" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="5999" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="190" y="-80" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6000" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#60a917;fontColor=#ffffff;strokeColor=#2D7600;" parent="5999" vertex="1">
<mxGeometry y="-0.005106382978723234" width="140" height="45" as="geometry"/>
</mxCell>
<mxCell id="6001" value="&lt;div&gt;cuLibrary&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="5999" vertex="1">
<mxGeometry x="10.019288676236041" y="13.404255319148938" width="119.9667368421052" height="18.18191489361702" as="geometry"/>
</mxCell>
<mxCell id="6013" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="5984" edge="1">
<mxCell id="6014" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="6009" target="5988" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="234" y="-35" as="sourcePoint"/>
<mxPoint x="220" y="60" as="targetPoint"/>
<mxPoint x="430" y="-25" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6014" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;strokeColor=#FFFFFF;" parent="1" source="6008" edge="1">
<mxCell id="6025" value="" style="group;strokeColor=none;dashed=1;strokeWidth=2;fontStyle=1" parent="1" vertex="1" connectable="0">
<mxGeometry x="200" y="-260" width="480" height="65" as="geometry"/>
</mxCell>
<mxCell id="6023" value="" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;fontFamily=Verdana;fillStyle=solid;fontColor=#F0F0F0;fillColor=#272130;strokeColor=#F0F0F0;" parent="6025" vertex="1">
<mxGeometry width="480.00000000000006" height="65" as="geometry"/>
</mxCell>
<mxCell id="6024" value="&lt;div&gt;&lt;font style=&quot;color: rgb(255, 255, 255);&quot;&gt;Application Implementation&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;fontStyle=1" parent="6025" vertex="1">
<mxGeometry x="120" y="28.561" width="240" height="7.878" as="geometry"/>
</mxCell>
<mxCell id="6029" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=1;exitX=0.23;exitY=1.004;exitDx=0;exitDy=0;strokeColor=#FFFFFF;exitPerimeter=0;" parent="1" source="6023" target="6005" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="430" y="-19" as="targetPoint"/>
<mxPoint x="320" y="-196" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6025" value="" style="group;strokeColor=none;dashed=1;strokeWidth=2;" parent="1" vertex="1" connectable="0">
<mxGeometry x="129.5" y="-290" width="430" height="100" as="geometry"/>
</mxCell>
<mxCell id="6023" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#333333;fontColor=#FFFFFF;strokeColor=none;spacing=0;" parent="6025" vertex="1">
<mxGeometry width="430" height="100" as="geometry"/>
</mxCell>
<mxCell id="6024" value="&lt;div&gt;Application Implementation&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="6025" vertex="1">
<mxGeometry x="97.50999999999999" y="43.93999999999998" width="234.99" height="12.120000000000001" as="geometry"/>
</mxCell>
<mxCell id="6026" style="edgeStyle=none;html=1;entryX=0.148;entryY=0.008;entryDx=0;entryDy=0;strokeWidth=2;entryPerimeter=0;strokeColor=#FFFFFF;" parent="1" target="5984" edge="1">
<mxCell id="6030" style="edgeStyle=none;html=1;strokeWidth=1;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="6023" target="6009" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="166" y="-190" as="sourcePoint"/>
<mxPoint x="159.99598908448831" y="-94.12" as="targetPoint"/>
<mxPoint x="452" y="-86" as="targetPoint"/>
<mxPoint x="455" y="-196" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6027" style="edgeStyle=none;html=1;strokeWidth=2;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#FFFFFF;" parent="1" edge="1">
<mxCell id="6031" style="edgeStyle=none;html=1;strokeWidth=1;strokeColor=#FFFFFF;entryX=0.775;entryY=-0.013;entryDx=0;entryDy=0;exitX=0.773;exitY=1.002;exitDx=0;exitDy=0;exitPerimeter=0;entryPerimeter=0;" parent="1" source="6023" target="5988" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="260" y="-190" as="sourcePoint"/>
<mxPoint x="260" y="-80.00510638297874" as="targetPoint"/>
<mxPoint x="520" y="-25" as="targetPoint"/>
<mxPoint x="560" y="-190" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6029" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#FFFFFF;" parent="1" source="6023" target="6005" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="320" y="-190" as="sourcePoint"/>
</mxGeometry>
<mxCell id="6034" value="&lt;div&gt;&lt;font style=&quot;color: rgb(112, 95, 127);&quot;&gt;Application&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=25;fontColor=#FFFFFF;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="327.5" y="-299" width="234.99" height="12.120000000000001" as="geometry"/>
</mxCell>
<mxCell id="6030" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FFFFFF;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="6008" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="452" y="-80" as="targetPoint"/>
<mxPoint x="430" y="-190" as="sourcePoint"/>
</mxGeometry>
<mxCell id="6035" value="runtime API" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#431111;fontColor=#FFFFFF;strokeColor=#FF2424;glass=0;" parent="1" vertex="1">
<mxGeometry x="252" y="-11" width="115" height="37" as="geometry"/>
</mxCell>
<mxCell id="6031" style="edgeStyle=none;html=1;exitX=0.912;exitY=1.013;exitDx=0;exitDy=0;strokeWidth=2;exitPerimeter=0;strokeColor=#FFFFFF;" parent="1" source="6023" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="520" y="-19" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="6034" value="&lt;div&gt;Application&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontColor=#FFFFFF;" parent="1" vertex="1">
<mxGeometry x="232.5" y="-310" width="234.99" height="12.120000000000001" as="geometry"/>
</mxCell>
<mxCell id="6035" value="runtime API" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#4F1623;fontColor=#FFFFFF;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="310" y="3" width="115" height="30" as="geometry"/>
</mxCell>
<mxCell id="6036" value="kernel language" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#4F1623;fontColor=#FFFFFF;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="437" y="3" width="115" height="30" as="geometry"/>
<mxCell id="6036" value="kernel language" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#431111;fontColor=#FFFFFF;strokeColor=#FF2424;" parent="1" vertex="1">
<mxGeometry x="517" y="-11" width="115" height="37" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
하나 이상의 라인이 너무 길어 파일 Diff가 표시되지 않음

이전

너비:  |  높이:  |  크기: 18 KiB

이후

너비:  |  높이:  |  크기: 18 KiB

+11 -23
파일 보기
@@ -1,6 +1,6 @@
.. meta::
:description: HIP runtime API usage
:keywords: AMD, ROCm, HIP, CUDA, HIP runtime API How to,
:keywords: AMD, ROCm, HIP, HIP runtime API How to,
.. _hip_runtime_api_how-to:
@@ -9,32 +9,20 @@ Using HIP runtime API
********************************************************************************
The HIP runtime API provides C and C++ functionalities to manage event, stream,
and memory on GPUs. On the AMD platform, the HIP runtime uses
:doc:`Compute Language Runtime (CLR) <../understand/amd_clr>`, while on NVIDIA
CUDA platform, it is only a thin layer over the CUDA runtime or Driver API.
and memory on GPUs. The HIP runtime uses :doc:`Compute Language Runtime (CLR) <../understand/amd_clr>`.
- **CLR** contains source code for AMD's compute language runtimes: ``HIP`` and
``OpenCL™``. CLR includes the ``HIP`` implementation on the AMD
platform: `hipamd <https://github.com/ROCm/rocm-systems/tree/develop/projects/clr/hipamd>`_ and the
ROCm Compute Language Runtime (``rocclr``). ``rocclr`` is a
virtual device interface that enables the HIP runtime to interact with
different backends such as :doc:`ROCr <rocr-runtime:index>` on Linux or PAL on
Windows. CLR also includes the `OpenCL runtime <https://github.com/ROCm/rocm-systems/tree/develop/projects/clr/opencl>`_
implementation.
- The **CUDA runtime** is built on top of the CUDA driver API, which is a C API
with lower-level access to NVIDIA GPUs. For details about the CUDA driver and
runtime API with reference to HIP, see :doc:`CUDA driver API porting guide <../how-to/hip_porting_driver_api>`.
CLR contains source code for AMD ROCm's compute language runtimes: ``HIP`` and
``OpenCL™``. CLR includes the ``HIP`` implementation on the AMD ROCm
platform: `hipamd <https://github.com/ROCm/rocm-systems/tree/develop/projects/clr/hipamd>`_ and the
ROCm Compute Language Runtime (``rocclr``). ``rocclr`` is a
virtual device interface that enables the HIP runtime to interact with
different backends, such as :doc:`ROCr <rocr-runtime:index>` on Linux or PAL on
Microsoft Windows. CLR also includes the `OpenCL runtime <https://github.com/ROCm/rocm-systems/tree/develop/projects/clr/opencl>`_
implementation.
The backends of HIP runtime API under AMD and NVIDIA platform are summarized in
the following figure:
The HIP runtime API backends are summarized in the following figure:
.. figure:: ../data/how-to/hip_runtime_api/runtimes.svg
.. note::
On NVIDIA platform HIP runtime API calls CUDA runtime or CUDA driver via
hipother interface. For more information, see the `hipother repository <https://github.com/ROCm/rocm-systems/tree/develop/projects/hipother>`_.
Here are the various HIP Runtime API high level functions:
* :doc:`./hip_runtime_api/initialization`
-6
파일 보기
@@ -16,12 +16,6 @@ subtrees:
title: Installing HIP
- file: install/build
title: Building HIP from source
- url: https://rocm.docs.amd.com/projects/install-on-linux/en/${branch}/reference/system-requirements.html
title: Linux supported AMD GPUs
- url: https://rocm.docs.amd.com/projects/install-on-windows/en/${branch}/reference/system-requirements.html
title: Windows supported AMD GPUs
- url: https://developer.nvidia.com/cuda-gpus
title: NVIDIA supported GPUs
- caption: Programming guide
entries:
+20 -249
파일 보기
@@ -16,11 +16,10 @@ Prerequisites
=============
To follow this tutorial, you'll need installed drivers and a HIP compiler
toolchain to compile your code. Because HIP for ROCm supports compiling and
running on Linux and Windows with AMD and NVIDIA GPUs, the combination of
install instructions is more than worth covering as part of this tutorial. For
more information about installing HIP development packages, see
:doc:`/install/install`.
toolchain to compile your code. Because HIP supports compiling and running on
Linux and Windows with AMD GPUs, the install instructions are more than worth
covering as part of this tutorial. For more information about
installing HIP development packages, see :doc:`/install/install`.
.. _hip-tutorial-saxpy-heterogeneous-programming:
@@ -158,8 +157,8 @@ for compilation" on Linux. To make invocations more terse, Linux and Windows
example follow.
.. tab-set::
.. tab-item:: Linux and AMD
:sync: linux-amd
.. tab-item:: Linux
:sync: linux
While distro maintainers might package ROCm so that it installs to
system-default locations, AMD's packages aren't installed that way. They need
@@ -182,19 +181,8 @@ example follow.
have `/opt/rocm/bin` on the Path for convenience. This subtly affects
CMake package detection logic of ROCm libraries.
.. tab-item:: Linux and NVIDIA
:sync: linux-nvidia
Both distro maintainers and NVIDIA package CUDA so that ``nvcc`` and related
tools are available on the command line by default. You can call the
compiler on the command line with:
.. code-block:: bash
nvcc --version
.. tab-item:: Windows and AMD
:sync: windows-amd
.. tab-item:: Windows
:sync: windows
Windows compilers and command line tooling have traditionally relied on
extra environmental variables and PATH entries to function correctly.
@@ -244,90 +232,26 @@ example follow.
clang++ --version
.. tab-item:: Windows and NVIDIA
:sync: windows-nvidia
Windows compilers and command line tooling have traditionally relied on
extra environmental variables and PATH entries to function correctly.
Visual Studio refers to command lines with this setup as "Developer
Command Prompt" or "Developer PowerShell" for ``cmd.exe`` and PowerShell
respectively.
The HIP and CUDA SDKs on Windows don't include complete toolchains. You will
also need:
- The Microsoft Windows SDK. It provides the import libs to crucial system
libraries that all executables must link to and some auxiliary compiler
tooling.
- A Standard Template Library (STL). Installed as part of the Microsoft
Visual C++ compiler (MSVC) or with Visual Studio.
If you don't have a version of Visual Studio 2022 installed, for a
minimal command line experience, install the
`Build Tools for Visual Studio 2022 <https://aka.ms/vs/17/release/vs_BuildTools.exe>`_
with the Desktop Developemnt Workload. Under Individual Components select:
- A version of the Windows SDK
- "MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)"
- "C++ CMake tools for Windows" (optional)
.. note::
The "C++ CMake tools for Windows" individual component is a convenience which
puts both ``cmake.exe`` and ``ninja.exe`` onto the PATH inside developer
command prompts. You can install these manually, but then you must manage
them manually.
Visual Studio 2017 and later are detectable as COM object instances via WMI.
To setup a command line from any shell for the latest Visual Studio's
default Visual C++ toolset issue:
.. code-block:: powershell
$InstallationPath = Get-CimInstance MSFT_VSInstance | Sort-Object -Property Version -Descending | Select-Object -First 1 -ExpandProperty InstallLocation
Import-Module $InstallationPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll
Enter-VsDevShell -InstallPath $InstallationPath -SkipAutomaticLocation -Arch amd64 -HostArch amd64 -DevCmdArguments '-no_logo'
You should be able to call the compiler on the command line now:
.. code-block:: powershell
nvcc --version
Invoking the compiler manually
------------------------------
To compile and link a single-file application, use the following commands:
.. tab-set::
.. tab-item:: Linux and AMD
:sync: linux-amd
.. tab-item:: Linux
:sync: linux
.. code-block:: bash
amdclang++ ./HIP-Basic/saxpy/main.hip -o saxpy -I ./Common -lamdhip64 -L /opt/rocm/lib -O2
.. tab-item:: Linux and NVIDIA
:sync: linux-nvidia
.. code-block:: bash
nvcc ./HIP-Basic/saxpy/main.hip -o saxpy -I ./Common -I /opt/rocm/include -O2 -x cu
.. tab-item:: Windows and AMD
:sync: windows-amd
.. tab-item:: Windows
:sync: windows
.. code-block:: powershell
clang++ .\HIP-Basic\saxpy\main.hip -o saxpy.exe -I .\Common -lamdhip64 -L ${env:HIP_PATH}lib -O2
.. tab-item:: Windows and NVIDIA
:sync: windows-nvidia
.. code-block:: powershell
nvcc .\HIP-Basic\saxpy\main.hip -o saxpy.exe -I ${env:HIP_PATH}include -I .\Common -O2 -x cu
Depending on your computer, the resulting binary might or might not run. If not,
it typically complains about "Invalid device function". That error
(corresponding to the ``hipErrorInvalidDeviceFunction`` entry of ``hipError_t``)
@@ -341,8 +265,8 @@ find out what device binary flavors are embedded into the executable?
.. tab-set::
.. tab-item:: Linux and AMD
:sync: linux-amd
.. tab-item:: Linux
:sync: linux
The utilities included with ROCm help significantly to inspect binary
artifacts on disk. Add the ROCmCC installation folder to your PATH if you
@@ -432,32 +356,8 @@ find out what device binary flavors are embedded into the executable?
The filename notes the graphics IPs used by the compiler. The contents of
this file are similar to the `*.s` file created with ``llvm-objdump`` earlier.
.. tab-item:: Linux and NVIDIA
:sync: linux-nvidia
Unlike HIP on AMD, when compiling using the NVIDIA support of HIP the resulting
binary will be a valid CUDA executable as far as the binary goes. Therefor
it'll incorporate PTX ISA (Parallel Thread eXecution Instruction Set
Architecture) instead of AMDGPU binary. As s result, tooling shipping with the
CUDA SDK can be used to inspect which device ISA got compiled into a specific
executable. The tool most useful to us currently is ``cuobjdump``.
.. code-block:: bash
cuobjdump --list-ptx ./saxpy
Which will print something like:
.. code-block::
PTX file 1: saxpy.1.sm_52.ptx
From this we can see that the saxpy kernel is stored as ``sm_52``, which shows
that a compute capability 5.2 ISA got embedded into the executable, so devices
which sport compute capability 5.2 or newer will be able to run this code.
.. tab-item:: Windows and AMD
:sync: windows-amd
.. tab-item:: Windows
:sync: windows
The HIP SDK for Windows don't yet sport the ``roc-*`` set of utilities to work
with binary artifacts. To find out what binary formats are embedded into an
@@ -562,36 +462,12 @@ find out what device binary flavors are embedded into the executable?
s_endpgm
...
.. tab-item:: Windows and NVIDIA
:sync: windows-nvidia
Unlike HIP on AMD, when compiling using the NVIDIA support for HIP, the resulting
binary will be a valid CUDA executable. Therefore, it'll incorporate PTX ISA
(Parallel Thread eXecution Instruction Set Architecture) instead of AMDGPU
binary. As a result, tooling included with the CUDA SDK can be used to
inspect which device ISA was compiled into a specific executable. The most
helpful to us currently is ``cuobjdump``.
.. code-block:: bash
cuobjdump.exe --list-ptx .\saxpy.exe
Which prints something like:
.. code-block::
PTX file 1: saxpy.1.sm_52.ptx
This example shows that the SAXPY kernel is stored as ``sm_52``. It also shows
that a compute capability 5.2 ISA was embedded into the executable, so devices
that support compute capability 5.2 or newer will be able to run this code.
Now that you've found what binary got embedded into the executable, find which
format our available devices use.
.. tab-set::
.. tab-item:: Linux and AMD
:sync: linux-amd
.. tab-item:: Linux
:sync: linux
On Linux a utility called ``rocminfo`` helps us list all the properties of the
devices available on the system, including which version of graphics IP
@@ -618,60 +494,8 @@ format our available devices use.
Calculating y[i] = a * x[i] + y[i] over 1000000 elements.
First 10 elements of the results: [ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ]
.. tab-item:: Linux and NVIDIA
:sync: linux-nvidia
On Linux HIP with the NVIDIA back-end, the ``deviceQuery`` CUDA SDK sample
can help us list all the properties of the devices available on the system,
including which version of compute capability a device sports.
``<major>.<minor>`` compute capability is passed to ``nvcc`` on the
command-line as ``sm_<major><minor>``, for eg. ``8.6`` is ``sm_86``.
Because it's not included as a binary, compile the matching
example from ROCm.
.. code-block:: bash
nvcc ./HIP-Basic/device_query/main.cpp -o device_query -I ./Common -I /opt/rocm/include -O2
Filter the output to have only the lines of interest, for example:
.. code-block:: bash
./device_query | grep "major.minor"
major.minor: 8.6
major.minor: 7.0
.. note::
In addition to the ``nvcc`` executable is another tool called ``__nvcc_device_query``
which prints the SM Architecture numbers to standard out as a comma
separated list of numbers. The utility's name suggests it's not a user-facing
executable but is used by ``nvcc`` to determine what devices are in the
system at hand.
Now that you know which graphics IPs our devices use, recompile your program with
the appropriate parameters.
.. code-block:: bash
nvcc ./HIP-Basic/saxpy/main.hip -o saxpy -I ./Common -I /opt/rocm/include -O2 -x cu -arch=sm_70,sm_86
.. note::
If you want to portably target the development machine which is compiling, you
may specify ``-arch=native`` instead.
Now the sample will run.
.. code-block::
./saxpy
Calculating y[i] = a * x[i] + y[i] over 1000000 elements.
First 10 elements of the results: [ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ]
.. tab-item:: Windows and AMD
:sync: windows-amd
.. tab-item:: Windows
:sync: windows
On Windows, a utility called ``hipInfo.exe`` helps us list all the properties
of the devices available on the system, including which version of graphics IP
@@ -698,56 +522,3 @@ format our available devices use.
.\saxpy.exe
Calculating y[i] = a * x[i] + y[i] over 1000000 elements.
First 10 elements of the results: [ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ]
.. tab-item:: Windows and NVIDIA
:sync: windows-nvidia
On Windows HIP with the NVIDIA back-end, the ``deviceQuery`` CUDA SDK sample
can help us list all the properties of the devices available on the system,
including which version of compute capability a device sports.
``<major>.<minor>`` compute capability is passed to ``nvcc`` on the
command-line as ``sm_<major><minor>``, for eg. ``8.6`` is ``sm_86``.
Because it's not included as a binary, compile the matching
example from ROCm.
.. code-block:: powershell
nvcc .\HIP-Basic\device_query\main.cpp -o device_query.exe -I .\Common -I ${env:HIP_PATH}include -O2
Filter the output to have only the lines of interest, for example:
.. code-block:: powershell
.\device_query.exe | Select-String "major.minor"
major.minor: 8.6
major.minor: 7.0
.. note::
Next to the ``nvcc`` executable is another tool called ``__nvcc_device_query.exe``
which simply prints the SM Architecture numbers to standard out as a comma
separated list of numbers. The naming of this utility suggests it's not a user
facing executable but is used by ``nvcc`` to determine what devices are in the
system at hand.
Now that you know which graphics IPs our devices use, recompile your program with
the appropriate parameters.
.. code-block:: powershell
nvcc .\HIP-Basic\saxpy\main.hip -o saxpy.exe -I ${env:HIP_PATH}include -I .\Common -O2 -x cu -arch=sm_70,sm_86
.. note::
If you want to portably target the development machine which is compiling, you
may specify ``-arch=native`` instead.
Now the sample will run.
.. code-block::
.\saxpy.exe
Calculating y[i] = a * x[i] + y[i] over 1000000 elements.
First 10 elements of the results: [ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ]
+24 -36
파일 보기
@@ -1,6 +1,6 @@
.. meta::
:description: This chapter provides an introduction to the HIP API.
:keywords: AMD, ROCm, HIP, CUDA, C++ language extensions
:keywords: AMD, ROCm, HIP, C++ language extensions
.. _intro-to-hip:
@@ -8,39 +8,36 @@
What is HIP?
*******************************************************************************
The Heterogeneous-computing Interface for Portability (HIP) API is a C++ runtime API
and kernel language that lets developers create portable applications running in heterogeneous systems,
using CPUs and AMD GPUs or NVIDIA GPUs from a single source code. HIP provides a simple
marshalling language to access either the AMD ROCM back-end, or NVIDIA CUDA back-end,
to build and run application kernels.
The Heterogeneous-computing Interface for Portability (HIP) API, part of AMD's
ROCm platform, is a C++ runtime API and kernel language that lets developers
create portable applications that run on heterogeneous systems, using CPUs and
AMD GPUs from a single source code base.
.. figure:: data/what_is_hip/hip.svg
:alt: HIP in an application.
:align: center
* HIP is a thin API with little or no performance impact over coding directly
in NVIDIA CUDA or AMD :doc:`ROCm <rocm:what-is-rocm>`.
in AMD :doc:`ROCm <rocm:what-is-rocm>`.
* HIP enables coding in a single-source C++ programming language including
* HIP enables coding in a single-source C++ programming language, including
features such as templates, C++11 lambdas, classes, namespaces, and more.
* Developers can specialize for the platform (CUDA or ROCm) to tune for
performance or handle tricky cases.
* Developers can tune for performance or handle tricky cases via HIP.
ROCm offers compilers (``clang``, ``hipcc``), code
profilers (``rocprof``, ``omnitrace``), debugging tools (``rocgdb``), libraries
and HIP with the runtime API and kernel language, to create heterogeneous applications
running on both CPUs and GPUs. ROCm provides marshalling libraries like
ROCm offers compilers (``clang``, ``hipcc``), code profilers (``rocprofv3``),
debugging tools (``rocgdb``), libraries and HIP with the runtime
API and kernel language, to create heterogeneous applications running on both
CPUs and GPUs. ROCm provides marshalling libraries like
:doc:`hipFFT <hipfft:index>` or :doc:`hipBLAS <hipblas:index>` that act as a
thin programming layer over either NVIDIA CUDA or AMD ROCm to enable support for
either back-end. These libraries offer pointer-based memory interfaces and are
easily integrated into your applications.
thin programming layer over AMD ROCm and offer API compatibility with the
equivalent Nvidia CUDA libraries. These libraries provide pointer-based memory
interfaces and can be easily integrated into your applications.
HIP supports the ability to build and run on either AMD GPUs or NVIDIA GPUs.
HIP supports building and running on both AMD GPUs or NVIDIA GPUs.
GPU Programmers familiar with NVIDIA CUDA or OpenCL will find the HIP API
familiar and easy to use. Developers no longer need to choose between AMD or
NVIDIA GPUs. You can quickly port your application to run on the available
hardware while maintaining a single codebase. The :doc:`HIPify <hipify:index>`
familiar and easy to use. You can quickly port your application to run on the
available hardware while maintaining a single codebase. The :doc:`HIPify <hipify:index>`
tools, based on the clang front-end and Perl language, can convert CUDA API
calls into the corresponding HIP API calls. However, HIP is not intended to be a
drop-in replacement for CUDA, and developers should expect to do some manual
@@ -56,8 +53,7 @@ develop massively parallel programs that run on GPUs, and provides access to GPU
specific hardware capabilities.
In summary, HIP simplifies cross-platform development, maintains performance,
and provides a familiar C++ experience for GPU programming that runs seamlessly
on both AMD and NVIDIA GPUs.
and provides a familiar C++ experience for GPU programming that runs seamlessly.
HIP components
===============================================
@@ -68,19 +64,11 @@ associated with each component, see :doc:`HIP licensing <license>`.
C++ runtime API
-----------------------------------------------
For the AMD ROCm platform, HIP provides headers and a runtime library built on
top of HIP-Clang compiler in the repository
:doc:`Compute Language Runtime (CLR) <understand/amd_clr>`. The HIP runtime
implements HIP streams, events, and memory APIs, and is an object library that
is linked with the application. The source code for all headers and the library
implementation is available on GitHub.
For the NVIDIA CUDA platform, HIP provides headers that translate from the
HIP runtime API to the CUDA runtime API. The host-side contains mostly inlined
wrappers or even just preprocessor defines, with no additional overhead.
The device-side code is compiled with ``nvcc``, just like normal CUDA kernels,
and therefore one can expect the same performance as if directly coding in CUDA.
The CUDA specific headers can be found in the `hipother repository <https://github.com/ROCm/rocm-systems/tree/develop/projects/hipother>`_.
HIP provides headers and a runtime library built on top of HIP-Clang compiler in
the repository :doc:`Compute Language Runtime (CLR) <understand/amd_clr>`. The
HIP runtime implements HIP streams, events, and memory APIs, and is an object
library that is linked with the application. The source code for all headers and
the library implementation is available on GitHub.
For further details, check :ref:`HIP Runtime API Reference <runtime_api_reference>`.