<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri",sans-serif;}
h2
        {mso-style-priority:9;
        mso-style-link:"Heading 2 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:18.0pt;
        font-family:宋体;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:宋体;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.Heading2Char
        {mso-style-name:"Heading 2 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 2";
        font-family:宋体;
        font-weight:bold;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:宋体;}
span.gp
        {mso-style-name:gp;}
span.go
        {mso-style-name:go;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="#0563C1" vlink="#954F72" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Currently openstack support vGPU as follow:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://docs.openstack.org/nova/latest/admin/virtual-gpu.html">https://docs.openstack.org/nova/latest/admin/virtual-gpu.html</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">In order to support it, admin should plan ahead and configure the vGPU before deployable as follow:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><a href="https://docs.openstack.org/nova/latest/configuration/config.html#devices.enabled_vgpu_types">https://docs.openstack.org/nova/latest/configuration/config.html#devices.enabled_vgpu_types</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">This is very inconvenient for the administrator, this method has a limitation that a
</span><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">same PCI address does not provide two different types.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">Cyborg as an accelerator management tool is more suitable for mdev device management.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">One solution as follow</span><span style="font-family:宋体;color:#333333;background:white">:</span><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">Firstly, we need a vender driver(this can be a plugin),  it is used to discovery its special devices and report them to placement for schedule.
<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US">The difference from the current implementation is that:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:21.0pt;mso-para-margin-left:2.0gd"><span lang="EN-US">1. report the mdev_supported_types as traits to resource provider.<o:p></o:p></span></p>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">How to discover a GPU type:<o:p></o:p></span></h2>
<div style="mso-element:para-border-div;border:solid #CCCCCC 1.0pt;padding:15.0pt 23.0pt 15.0pt 23.0pt;background:#333333;margin-left:21.0pt;margin-right:0cm">
<p class="MsoNormal" align="left" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;mso-margin-top-alt:0cm;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;text-align:left;background:#333333;word-break:break-all;border:none;padding:0cm">
<span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:#AAAAAA">$</span><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:white"> ls /sys/class/mdev_bus/*/mdev_supported_types<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;mso-margin-top-alt:0cm;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;text-align:left;background:#333333;word-break:break-all;border:none;padding:0cm">
<span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:#CCCCCC">/sys/class/mdev_bus/0000:84:00.0/mdev_supported_types:</span><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:white"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;mso-margin-top-alt:0cm;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;text-align:left;background:#333333;word-break:break-all;border:none;padding:0cm">
<span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:#CCCCCC">nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45</span><span lang="EN-US" style="font-size:10.0pt;font-family:Consolas;color:white"><o:p></o:p></span></p>
</div>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">so here we report nvidia-3*, nvidia-4* as traits to resource provider.
<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">2. Report the number of allocable resources instead of vGPU unit numbers to resource provider inventory<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">Example for the NVidia V100 PCIe card (one GPU per board) :</span><span lang="EN-US" style="font-size:10.5pt"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">Virtual GPU Type     Frame Buffer (Gbytes)      Maximum vGPUs per GPU        Maximum vGPUs per Board</span><span lang="EN-US" style="font-size:10.5pt"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-32Q               32                        1                            1                        
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-16Q               16                        2                            2                        
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-8Q               8                         4                            4                     
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-4Q               4                          8                            8                        
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-2Q               2                         16                           16                       
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;color:black">V100D-1Q               1                         32                           32                       
</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:31.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:3.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">so here we report 32G Buffers(an example, maybe other resources) to resource provider inventory
<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:2.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">3. driver should also support a function to create certain mdev type, such as (V100D-1Q,  V100D-2Q,)<o:p></o:p></span></h2>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">Secondly, we need a mdev extend ARQ(it can be a plugin):<o:p></o:p></span></p>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:10.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:1.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">Here is an example for fpga ext arq:<o:p></o:p></span></h2>
<p class="MsoNormal" style="margin-left:10.5pt;mso-para-margin-left:1.0gd"><span lang="EN-US"><a href="https://review.opendev.org/#/c/681005/26/cyborg/objects/extarq/fpga_ext_arq.py@206">https://review.opendev.org/#/c/681005/26/cyborg/objects/extarq/fpga_ext_arq.py@206</a><o:p></o:p></span></p>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:10.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:1.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">The difference is that, we replace the _do_programming to _<i>do</i>_create_mdev<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:10.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:1.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">For _do_programming, it is used to create a new FPGA function.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:10.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:1.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">For _<i>do</i>_create_mdev, it is used to create a new type mdev, it will call the implementation function in vendor driver.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:10.5pt;mso-margin-top-alt:15.0pt;mso-para-margin-right:0cm;mso-para-margin-bottom:7.5pt;mso-para-margin-left:1.0gd;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Segoe UI",sans-serif;color:#333333;background:white">At last we need to support a mdev handler for xml generation in nova, we can refer to the cyborg PCI handler in nova<o:p></o:p></span></p>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">So after the above changes</span><span style="font-size:10.5pt;color:#2A4E68;font-weight:normal">:</span><span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">Admin can create different SLA devices profiles such as:<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">{“name”: “Gold_vGPU”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">       “groups”: [<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;text-indent:21.0pt;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">{“resources:vGPU_BUFFERS”: “16”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">        “traits: V100D-16Q,”: “required”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">              }]<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">}<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">And
<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">{“name”: “Iron_vGPU”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">       “groups”: [<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:21.0pt;text-indent:21.0pt;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">{“resources:vGPU_BUFFERS”: “1”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">        “traits: V100D-1Q,”: “required”,<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">              }]<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">}<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">Then a tenant can use Gold_vGPU to create with a VM with V100D-16Q vGPU<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">And another tenant can use Iron_vGPU to create with a VM with V100D-1Q vGPU<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">When ARQ binding during the VM creating, the Cyborg will call the vendor driver to create expected mdev vGPU.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">And these 2 mdev vGPU can be on same physical GPU card.
<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">The mdev extend ARQ and vendor driver can be plugin, they are loose couple with the upstream code.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">So the downstream can get the upstream code to customize the own mdev extend ARQ and vendor driver.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">Here vGPU is just an example, it can be other mdev devices.<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal"><o:p> </o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">BR<o:p></o:p></span></h2>
<h2 style="mso-margin-top-alt:15.0pt;margin-right:0cm;margin-bottom:7.5pt;margin-left:0cm;background:white">
<span lang="EN-US" style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;color:#2A4E68;font-weight:normal">Shaohe Feng<o:p></o:p></span></h2>
</div>
</body>
</html>