{"id":144309,"date":"2023-03-17T11:48:27","date_gmt":"2023-03-17T18:48:27","guid":{"rendered":"https:\/\/ec2-34-221-119-146.us-west-2.compute.amazonaws.com\/rdma-with-atlas10-cameras\/"},"modified":"2025-05-01T13:06:52","modified_gmt":"2025-05-01T20:06:52","slug":"rdma-with-atlas10-cameras","status":"publish","type":"page","link":"https:\/\/thinklucid.com\/ja\/rdma-with-atlas10-cameras\/","title":{"rendered":"10GigE\u304a\u3088\u3073\u305d\u308c\u4ee5\u4e0a\u306e\u901a\u4fe1\u901f\u5ea6 \u306b\u304a\u3051\u308bRDMA\u306e\u5229\u70b9"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row full_width=&#8221;stretch_row_content_no_spaces&#8221; gap=&#8221;35&#8243;][vc_column offset=&#8221;vc_col-lg-offset-0 vc_col-lg-7 vc_col-md-offset-1 vc_col-md-6 vc_col-sm-offset-0 vc_col-xs-12&#8243;][vc_row_inner][vc_column_inner width=&#8221;1\/6&#8243;][\/vc_column_inner][vc_column_inner width=&#8221;5\/6&#8243;][vc_custom_heading text=&#8221;\u30db\u30ef\u30a4\u30c8\u30da\u30fc\u30d1\u30fc\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9&#8221; font_container=&#8221;tag:h2|font_size:26px|text_align:left&#8221; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1681766033796{margin-bottom: 25px !important;}&#8221;][vc_column_text css=&#8221;.vc_custom_1746129843862{margin-bottom: 25px !important;}&#8221;]<\/p>\n<h2 style=\"font-size: 36px; margin-top: 0px;\">10GigE\u304a\u3088\u3073\u305d\u308c\u4ee5\u4e0a\u306e\u901a\u4fe1\u901f\u5ea6\u306b\u304a\u3051\u308bRDMA\u306e\u5229\u70b9<\/h2>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;7\/12&#8243;][vc_single_image image=&#8221;181233&#8243; img_size=&#8221;full&#8221; alignment=&#8221;center&#8221; css_animation=&#8221;fadeInLeft&#8221; css=&#8221;.vc_custom_1746129979884{margin-bottom: 10px !important;}&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;5\/12&#8243;][vc_column_text css=&#8221;&#8221;]<\/p>\n<p style=\"line-height: 1.5;\">\u3053\u306e\u30db\u30ef\u30a4\u30c8\u30da\u30fc\u30d1\u30fc\u3067\u306f\u3001RDMA \u6280\u8853\u304c\u9ad8\u901f\u30a4\u30fc\u30b5\u30cd\u30c3\u30c8\u30de\u30b7\u30f3\u30d3\u30b8\u30e7\u30f3\u30ab\u30e1\u30e9\u3092\u3069\u306e\u3088\u3046\u306b\u5909\u8c8c\u3055\u305b\u308b\u304b\u306b\u3064\u3044\u3066\u3001\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002RDMA\u306e\u8d77\u6e90\u3068\u4ed5\u7d44\u307f\u3001RoCEv2\u898f\u683c\u306b\u3064\u3044\u3066\u3001TCP\u3084UDP\u3068\u3044\u3063\u305f\u5f93\u6765\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\u3068\u306e\u6bd4\u8f03\u3092\u4ea4\u3048\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u3066\u3044\u307e\u3059\u3002RDMA\u304c\u63d0\u4f9b\u3059\u308b\u30bc\u30ed\u30b3\u30d4\u30fc\u8ee2\u9001\u6a5f\u80fd\u3092\u5f37\u8abf\u3057\u3001CPU\u3084OS\u3092\u30d0\u30a4\u30d1\u30b9\u3057\u305f\u30c7\u30fc\u30bf\u8ee2\u9001\u3092\u53ef\u80fd\u306b\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\u3055\u3089\u306b\u3001\u3053\u306e\u6a5f\u80fd\u304c10GigE\u304a\u3088\u307325GigE\u30ab\u30e1\u30e9\u306b\u3069\u306e\u3088\u3046\u306b\u5f71\u97ff\u3059\u308b\u304b\u3001\u4e88\u5099\u7684\u306a\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u7d50\u679c\u3082\u542b\u3081\u3001\u5305\u62ec\u7684\u306b\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30db\u30ef\u30a4\u30c8\u30da\u30fc\u30d1\u30fc\u3092\u8aad\u3080\u3053\u3068\u3067\u3001RDMA\u6280\u8853\u304c\u30de\u30b7\u30f3\u30d3\u30b8\u30e7\u30f3\u30ab\u30e1\u30e9\u696d\u754c\u306b\u4e0e\u3048\u308b\u5f71\u97ff\u306b\u3064\u3044\u3066\u3001\u8cb4\u91cd\u306a\u77e5\u898b\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p style=\"color: black; text-align: left; margin-bottom: 0em; font-size: 12px;\"><strong>\u76ee\u6b21:<\/strong><\/p>\n<p style=\"color: black; text-align: left; line-height: 1.5; padding-left: 30px; font-size: 14px;\">&#8211; \u306a\u305cGIGE VISION\u898f\u683c\u306bUDP\u3092\u4f7f\u3046\u306e\u304b\uff1f<br \/>\n&#8211; 10GIGE\u30ab\u30e1\u30e9\u306b\u304a\u3051\u308bUDP\u306e\u8ab2\u984c<br \/>\n&#8211; CPU\u306e\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u3092\u89e3\u6d88\u3059\u308b<br \/>\n&#8211; REMOTE DMA OVER CONVERGENT ETHERNET (ROCE V2)<br \/>\n&#8211; RDMA\u63a5\u7d9a\uff06\u8ee2\u9001\u306e\u624b\u9806\uff0b\u6ce8\u610f\u70b9\uff01<br \/>\n&#8211; GIGE VISION\u306e\u305f\u3081\u306eRDMA<br \/>\n&#8211; GPU\u30e1\u30e2\u30ea\u306f\u3069\u3046\u304b\uff1f<br \/>\n&#8211; UDP\u3068RDMA\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u6bd4\u8f03<br \/>\n&#8211; RDMA\u5bfe\u5fdc\u30ab\u30e1\u30e9 &amp; \u30a2\u30af\u30bb\u30b5\u30ea<br \/>\n&#8211; \u9ad8\u901f\u306a\u672a\u6765<\/p>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][\/vc_column][vc_column width=&#8221;5\/6&#8243; offset=&#8221;vc_col-lg-offset-0 vc_col-lg-4 vc_col-md-offset-0 vc_col-md-4 vc_col-sm-offset-1 vc_col-xs-12&#8243; css=&#8221;.vc_custom_1679803183576{margin-top: 50px !important;}&#8221; el_id=&#8221;white-paper&#8221;][vc_column_text]<\/p>\n<div style=\"text-align: center; font-size: 14px;\">\u30d5\u30a9\u30fc\u30e0\u306b\u8a18\u5165\u3057\u3066\u300c\u9001\u4fe1\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30ea\u30f3\u30af\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/div>\n<div style=\"text-align: center; font-size: small;\">(\u82f1\u8a9e\u3001\u65e5\u672c\u8a9e\u3001\u97d3\u56fd\u8a9e\u3001\u4e2d\u56fd\u8a9e\u306ePDF\u304c\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002\uff09<\/div>\n<p>[\/vc_column_text][vc_column_text]<iframe height=\"750px\" width=\"100%\" frameborder=\"0\" allow=\"geolocation;microphone;camera\" src=\"https:\/\/forms.zohopublic.com\/webmaster40\/form\/RDMAWhitePaperDownloadForm\/formperma\/XC6mk7DACPnYntcdtX6NQYXQFC9DIDAp4xTOlAwRk44\"> <\/iframe>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column css=&#8221;.vc_custom_1624042002214{margin-bottom: 25px !important;}&#8221;][vc_text_separator title=&#8221;\u30d7\u30ec\u30d3\u30e5\u30fc&#8221; color=&#8221;mulled_wine&#8221; css=&#8221;.vc_custom_1695942005726{margin-top: 50px !important;margin-bottom: 25px !important;}&#8221;]\n\t\t\t\t<p class=\"rs-p-wp-fix\"><\/p>\n\t\t\t\t<sr7-module data-alias=\"10GigE-RDMA-White-Paper\" data-id=\"127\" id=\"SR7_127_1\" data-version=\"7.0.14\">\n\t\t\t\t\t<sr7-adjuster><\/sr7-adjuster>\n\t\t\t\t\t<sr7-content>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_127_1-231\" data-key=\"231\">\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-0\" class=\"sr7-layer\">Surviving Industrial Challenges <\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-2\" class=\"sr7-layer\">To build these compact embedded vision systems however, application designers must navigate the challenges of harsher operating environments and the complexities of building smaller, faster, more power efficient systems. They must work to validate their system through time-consuming stages, starting from the proof of concept (POC), to prototyping, and finally to a minimum viable product (MVP) or a Full Custom Design (FCD). Off-the-shelf embedded development kits, such as those from NVIDIA, Xilinx, or Raspberry Pi offer a quick solution to building a proof-of-concept design. However, many camera modules and embedded development boards offer little to no protection from the harsh environments of industrial spaces. A considerable amount of time must be spent on designing and testing prototypes that are protected against dust and moisture (IP67 or IP65), electromagnetic interference (EMC immunity) and ...<\/sr7-txt>\n\t\t\t\t\t\t\t<a id=\"SR7_127_1-231-3\" class=\"sr7-layer\" href=\"#white-paper\" target=\"_self\">Fill out the form above and download the full white paper<\/a>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-4\" class=\"sr7-layer\">Adapting RDMA over the Ethernet network enables the following benefits:<br \/>\n<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-7\" class=\"sr7-layer\">\u2022\tFastest throughput and lowest latency available at all speeds of Ethernet networks, compatible with existing switching infrastructure and cabling.<br \/>\n<br \/>\n\u2022\tComplete hardware offload of packet handling with no CPU involvement through zero-copy; ability to send and receive data to and from remote buffers.<br \/>\n<br \/>\n\u2022\tComprehensive ecosystem of industrial connectivity solutions offering secure connectors, EMI shielding, ground isolation, and Power over Ethernet (PoE).<br \/>\n<br \/>\n\u2022\tSupported by many vendors of both hardware and software solutions \u2014 including Broadcom, Marvell, Nvidia, and Intel \u2014 promoting interoperability.<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-9\" class=\"sr7-layer\">The Host Channel Adapter (HCA) manages RoCE operations, implementing in hardware all the logic needed to execute RDMA protocol. Data segmentation and reassembly as well as flow control are managed by the HCA allowing the sender and receiver applications to work with whole buffers. The RDMA channel is initiated by \u201cpinning\u201d memory. A memory region is reserved on the host for RDMA usage, the necessary protections are applied, and then the host passes the address to the HCA and removes itself from the data path. This registered memory region can now be used for any RDMA operation, bypassing the operating system, and generating no additional CPU load.  <br \/>\n<br \/>\nRoCE RDMA transactions use three queues. The send and receive queues handle all the data transaction and are always created together as a queue pair (QP). The completion queue (CQ) is used to track the completion of the work scheduled on the QP. The QPs enables application-level flow control to notify the sender of available buffers for RDMA transfer on the receiver\u2019s end. <br \/>\n<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-10\" class=\"sr7-layer\"><strong>figure 7:<\/strong> In a conventional networking stack (left), data transfer from one application to another application on a remote machine involves multiple buffer copies and context switching to mobilize the CPU at each stage. In an RoCE network, data is transfered directly from the initiator application to the target application with no CPU involvement, bypassing the OS stack entirely. <\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-11\" class=\"sr7-layer\"><br \/>\n<strong>What do you need to enable RDMA with <br>LUCID 10GigE Cameras?<\/strong><br \/>\n<br \/>\n&bull; LUCID Atlas10 camera with RDMA firmware<br \/>\n&bull; RDMA 10GigE Host Channel Adapter (HCA)<br \/>\n&bull; (Optional) 10GigE Switch with PFC priority-enabled VLAN<br \/>\n&bull; Cat6 or better Ethernet cable<br \/>\n<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-12\" class=\"sr7-layer\">Before RDMA data transfers can take place, a queue pair (QP) and a completion queue (CQ) must be created for each hardware port, known as a channel adapter (CA) on the RDMA network. <br \/>\nWhat is needed on the camera:<br \/>\n<strong>Camera QP (Send and Receive Queues)<br \/>\nCamera CQ (Completion Queue)<\/strong><\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-13\" class=\"sr7-layer\">Registering and reserving host memory for RDMA user applications is possible thanks to Network Direct in MS Windows\u00ae and the Libibverbs library in Linux.<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-14\" class=\"sr7-layer\">RDMA data transfers can only start after memory is registered. This is done by \u201cpinning\u201d the host\u2019s memory. A memory region is reserved by the OS and registered with the HCA.<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-15\" class=\"sr7-layer\">Host Channel Adapter (HCA) Port 2. <br \/>\n<strong>HCA2 QP (Send and Receive Queues)<br \/>\nHCA2 CQ (Completion Queue)<\/strong><\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-16\" class=\"sr7-layer\">Host Channel Adapter (HCA) Port 1. <br \/>\n<strong>HCA1 QP (Send and Receive Queues)<br \/>\nHCA1 CQ (Completion Queue)<\/strong><\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-17\" class=\"sr7-layer\">\tHow are RDMA devices programmed in applications? It starts with <span style=\"color: lightblue\">RDMA verbs<\/span>, which are the low-level building blocks for RDMA applications. They are accessed by various API libraries, however, the two major libraries used are <span style=\"color: orange\">Libibverbs API<\/span> for Linux and  <span style=\"color: orange\">Network Direct SPI<\/span> for Microsoft Windows. These APIs allow RDMA devices to establish channel adapter connections, pin and register memory, execute data transfers, and terminate connections. <br \/>\n<br \/>\n\tThere are two types of Verbs:  <span style=\"color: #ff00ff\">one-sided<\/span> and <span style=\"color: #ff00ff\">two-sided verbs<\/span>. One-sided verbs allow remote devices (such as cameras) to completely bypass the CPU\/OS when sending data. Two-sided verbs act more like traditional sockets that utilize the CPU\/OS. LUCID uses two-sided verbs. Using two-sided verbs still removes several sources of CPU overhead compared to conventional Ethernet data transfers. Using two-sided verbs is necessary for requeuing transfers and polling the CQ. These tasks take up negligible CPU resources.<\/sr7-txt>\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_127_1-231-18\" class=\"sr7-layer\">======RDMA Verbs and Verbs APIs======<\/sr7-txt>\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_127_1-622\" data-key=\"622\">\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t<\/sr7-content>\n\t\t\t\t\t<image_lists style=\"display:none\">\n\t\t\t\t\t\t<img decoding=async data-opt-id=226327247  data-src=\"https:\/\/mlxrlrwirvff.i.optimole.com\/cb:UhP2~57313\/w:auto\/h:auto\/q:75\/https:\/\/thinklucid.com\/wp-content\/uploads\/2023\/03\/10GigE-RDMA-White-Paper.jpg\" data-libid=\"141821\" data-lib=\"medialibrary\" alt=\"10GigE RDMA White Paper\" width=\"0\" height=\"0\" data-dbsrc=\"Ly90aGlua2x1Y2lkLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wMy8xMEdpZ0UtUkRNQS1XaGl0ZS1QYXBlci5qcGc=\"\/>\n\t\t\t\t\t<\/image_lists>\n\t\t\t\t<\/sr7-module>\n\t\t\t\t<script>\n\t\t\t\t\twindow.SR7??={}; SR7.PMH ??={}; SR7.PMH[\"SR7_127_1\"] = {cn:100,state:false,fn: function() { if (window._tpt!==undefined && window._tpt.prepareModuleHeight !== undefined) {  _tpt.prepareModuleHeight({id:\"SR7_127_1\",el:[1340,1340,1348,1030,640],type:'hero',gh:[1340,1340,\"#a\",\"#a\",\"#a\"],gw:[1920,1920,\"#a\",\"#a\",\"#a\"],vpt:['-200px'],size:{fullWidth:true, fullHeight:false},mh:'0',onh:0,onw:0,bg:{color:'{\"orig\":\"transparent\",\"type\":\"solid\",\"string\":\"transparent\"}'}});   SR7.PMH[\"SR7_127_1\"].state=true;} else if(SR7.PMH[\"SR7_127_1\"].cn-->0)\tsetTimeout( SR7.PMH[\"SR7_127_1\"].fn,19);}};SR7.PMH[\"SR7_127_1\" ].fn();\n\t\t\t\t<\/script>\n[\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row full_width=&#038;&hellip;<\/p>\n","protected":false},"author":2,"featured_media":17135,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","inline_featured_image":false,"footnotes":""},"tags":[],"camera_family":[],"class_list":["post-144309","page","type-page","status-publish","has-post-thumbnail","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/pages\/144309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/comments?post=144309"}],"version-history":[{"count":2,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/pages\/144309\/revisions"}],"predecessor-version":[{"id":181237,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/pages\/144309\/revisions\/181237"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/media\/17135"}],"wp:attachment":[{"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/media?parent=144309"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/tags?post=144309"},{"taxonomy":"camera_family","embeddable":true,"href":"https:\/\/thinklucid.com\/ja\/wp-json\/wp\/v2\/camera_family?post=144309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}