{"id":297,"date":"2018-10-01T07:00:11","date_gmt":"2018-10-01T07:00:11","guid":{"rendered":"http:\/\/bitxhub.com\/gyrus_ci\/blog\/?p=297"},"modified":"2021-01-28T03:23:53","modified_gmt":"2021-01-28T03:23:53","slug":"compute-near-storage-in-cloud-for-fpga-acceleration","status":"publish","type":"post","link":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/","title":{"rendered":"Compute near Storage in Cloud for FPGA acceleration"},"content":{"rendered":"    \r\n \r\n<div id=\"view1\" class=\"show\">\r\n\r\n<h3 class=\"wp-block-heading\">Background<\/h3>\r\n\r\n\r\n\r\n<p>This blog outlines the advantages of compute attached to storage and reference architecture to implement it in the cloud with FPGAs.<\/p>\r\n\r\n\r\n\r\n<p>Almost all the deep learning algorithms are very memory intensive and it takes more energy (power) to get data into and out of the CPU\/GPU than the compute itself. Optimal scheduling of DMA is challenging owing to the several threads running to compute different parts of the network with dependencies rendering a lot of dead cycles. Moreover, 90% of the fully connected layer in \u20180\u2019s weights, hence transferring these &#8216;0&#8217;s consume more energy. FPGA\u2019s offer a healthy compromise between CPU\/GPU and ASIC\u2019s to implement fixed functions close to the memory. Storage can be attached near the cloud is the ideal choice for computing.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">FPGA Advantages<\/h3>\r\n\r\n\r\n\r\n<p>There are several advantages to FPGA technology.<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The reconfigurability makes them more flexible than a custom-built ASIC<\/li>\r\n<li>The performance of the FPGA is higher than the CPU\u2019s and GPU\u2019s owing to the hardened pipeline<\/li>\r\n<li>Can perform Inline processing with low latency enabling real-time response\r\n<ul>\r\n<li>GPU\u2019s depend on batch processing for performance increasing the latency<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>FPGA can be close to the data source\/sink avoiding DMA overheads<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" width=\"500\" height=\"147\" class=\"wp-image-298\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3.png\" alt=\"FPGA Flexibility Vs. Efficiency\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3.png 500w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3-300x88.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\r\n<figcaption>FPGA Flexibility Vs. Efficiency<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Case for FPGA acceleration near Storage<\/h3>\r\n\r\n\r\n\r\n<p>The graph below shows the roofline for CPU (as reported by Google in its TPU-1 paper-2017). Utilization of CPU compute is maximum for the cases above 20 operations per byte. For cases where they are fully connected networks, it requires 1 Operation per 2 weight bytes (16-bit weights), thereby making the CPU wait for loading most of the time. whereas the database processing tasks is in IO-bound with the Operation per word can be accessed for non-in memory database. In many cases, the database sizes are large and preclude fully fitting into memory when there is less number of nodes.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"580\" height=\"265\" class=\"wp-image-299\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3.png\" alt=\"CPU Roofline \" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3.png 580w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3-300x137.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/>\r\n<figcaption>CPU Roofline (Courtesy Google)<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>In doing, FPGA processing near the storage, the host processor receives only the results whereas the data can stay near the drives. Attachment of Caching in the memory to FPGAs helps to reuse the recently accessed data. This enables the implementation of very large databases\/datasets with very less number of nodes and with very high performance reducing the overheads implementing clusters of processors.<\/p>\r\n\r\n\r\n\r\n<p><em>Also, learn more about the data layer, check out <a href=\"https:\/\/gyrus.ai\/technology\/data_layer\">Data Quality Improvement<\/a> page <\/em><\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"878\" height=\"397\" class=\"wp-image-300\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3.png\" alt=\"Storage Acceleration\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3.png 878w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3-300x136.png 300w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3-768x347.png 768w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/>\r\n<figcaption>Storage Acceleration<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>Moreover, the data can be back and forth with the SSD store to\/from the FPGA without having to go to the network, alleviating IOPS at the processor, Network bandwidth at the Spine Switches.<\/p>\r\n\r\n\r\n\r\n<p>Some of the operations on the data can be offloaded to the Accelerator as data is written into and read from Storage.\u00a0 Low latency and in-line processing have an advantage for such functionality. In order to reduce the footprint of the database, the functions like compression will be implemented in the accelerator.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Database Acceleration<\/h3>\r\n\r\n\r\n\r\n<p>Similar to the Deep-learning algorithms, Compute attached storage can be used to accelerate a lot of Database and Visualization functions. In order to process data in the FPGA, data fetched directly from the storage and only result in the CPU. This alleviates the IOPS requirement for the CPU and CPU just needs to issue a command to the FPGA.<\/p>\r\n\r\n\r\n\r\n<p>FPGA processing latency is very low and without having to do any DMA transfers or pass through Network traffic, the latency is even lower enabling highly responsive response times. Moreover, FPGA can implement multiple threads with micro-engines enabling very high levels of parallelism for database tasks. FPGA can accelerate the search, another common database functions such as filtering, Arithmetic operations, etc.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Cloud Support for FPGA Acceleration<\/h3>\r\n\r\n\r\n\r\n<p>As per compute requirements in Cloud, FPGAs in cloud reprogrammed for different applications. For instance, the bing search is familiar with its use and efficiency.<\/p>\r\n\r\n\r\n\r\n<p>Microsoft Azure has FPGA\u2019s that connect to the TOR directly to fetch data without having to interrupt the Host processor enabling acceleration in line.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"238\" class=\"wp-image-302\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1.png\" alt=\"Microsoft Azure Architecture  \" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1.png 580w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1-300x123.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/>\r\n<figcaption>Microsoft Azure Architecture (Courtesy Microsoft)<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>Amazon AWS provides F-1 instances and the instances can be built with SSD storage for fast access. However, AWS instances require that the Host processor schedule the DMA transfers. Here a Processor + FPGA + SSD Storage can form a Storage Node. It will perform with very high performance, low latency, and less network traffic.<\/p>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"218\" class=\"wp-image-303\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3.png\" alt=\"Amazon AWS F-1 Instance Architecture\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3.png 583w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3-300x112.png 300w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/>\r\n<figcaption>Amazon AWS F-1 Instance Architecture<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Something got to give<\/h3>\r\n\r\n\r\n\r\n<p>Above all, One of the main disadvantages with the compute near Storage in Cloud storage acceleration with FPGA is that there could be new APIs for using the FPGA functions. For Deep-learning, it is relatively straightforward and functions can be offloaded at the layer-by-layer level or the complete network can be offloaded.<\/p>\r\n\r\n\r\n\r\n<p>However for database acceleration either special offloading functions need to be called in-lieu of standard SQL commands. while a complete interpreter can be built similar to the memSQL and the backend can be implemented with FPGA functions.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Results<\/h3>\r\n\r\n\r\n\r\n<p>Storage acceleration for deep learning gave about 5x improvement in performance compared to running the model in GPU.<\/p>\r\n\r\n\r\n\r\n<p>About 25x improvement in performance compared to running the model in CPU. Storage acceleration for SQL\/ETL applications gave an improvement of over 25x compared to CPU.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\r\n\r\n\r\n\r\n<p>Firstly, Moving to compute closer to the storage reduces the overall power consumption and efficiency. Certainly, it provides a very scalable architecture obviating the need for high-performance GPU\u2019s and Switches for performing simple tasks. Secondly, Moving to compute closer to the storage is not confined to private clouds, but is also feasible in the current cloud architectures at Amazon AWS and Microsoft Azure. Furthermore, Gyrus has implemented several such FPGA offloading projects successfully.<\/p>\r\n<\/div>\r\n\r\n<div id=\"view2\" class=\"hide\">\r\n\r\n<h3 class=\"wp-block-heading\">\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9<\/h3>\r\n\r\n\r\n\r\n<p>\u3053\u306e\u30d6\u30ed\u30b0\u3067\u306f\u3001FPGA\u3092\u4f7f\u7528\u3057\u3066\u30af\u30e9\u30a6\u30c9\u306b\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u304a\u3088\u3073\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u63a5\u7d9a\u3055\u308c\u305f\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u5229\u70b9\u306b\u3064\u3044\u3066\u6982\u8aac\u3057\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>\u307b\u3068\u3093\u3069\u3059\u3079\u3066\u306e\u6df1\u5c64\u5b66\u7fd2\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306f\u975e\u5e38\u306b\u591a\u304f\u306e\u30e1\u30e2\u30ea\u3092\u6d88\u8cbb\u3057\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u81ea\u4f53\u3088\u308a\u3082CPU\/GPU\u306b\u30c7\u30fc\u30bf\u3092\u51fa\u3057\u5165\u308c\u3059\u308b\u306e\u306b\u3088\u308a\u591a\u304f\u306e\u30a8\u30cd\u30eb\u30ae\u30fc(\u96fb\u529b)\u3092\u5fc5\u8981\u3068\u3057\u307e\u3059\u3002 DMA\u306e\u6700\u9069\u306a\u30b9\u30b1\u30b8\u30e5\u30fc\u30ea\u30f3\u30b0\u306f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u3055\u307e\u3056\u307e\u306a\u90e8\u5206\u3092\u8a08\u7b97\u3059\u308b\u305f\u3081\u306b\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u305f\u3081\u306b\u56f0\u96e3\u3067\u3042\u308a\u3001\u4f9d\u5b58\u95a2\u4fc2\u306b\u3088\u3063\u3066\u591a\u304f\u306e\u30c7\u30c3\u30c9\u30b5\u30a4\u30af\u30eb\u304c\u767a\u751f\u3057\u307e\u3059\u3002 \u3055\u3089\u306b\u3001\u5b8c\u5168\u306b\u63a5\u7d9a\u3055\u308c\u305f\u30ec\u30a4\u30e4\u30fc\u306e90\uff05\u304c\u300c0\u300d\u306e\u91cd\u307f\u3067\u3042\u308b\u305f\u3081\u3001\u3053\u308c\u3089\u306e\u300c0\u300d\u3092\u8ee2\u9001\u3059\u308b\u3068\u3001\u3088\u308a\u591a\u304f\u306e\u30a8\u30cd\u30eb\u30ae\u30fc\u304c\u6d88\u8cbb\u3055\u308c\u307e\u3059\u3002 FPGA\u306f\u3001CPU\/GPU\u3068ASIC\u306e\u9593\u306e\u5065\u5168\u306a\u59a5\u5354\u70b9\u3092\u63d0\u4f9b\u3057\u3001\u30e1\u30e2\u30ea\u306e\u8fd1\u304f\u306b\u56fa\u5b9a\u6a5f\u80fd\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u30b9\u30c8\u30ec\u30fc\u30b8\u306f\u30af\u30e9\u30a6\u30c9\u306e\u8fd1\u304f\u306b\u63a5\u7d9a\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u6700\u9069\u3067\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">FPGA\u306e\u5229\u70b9<\/h3>\r\n\r\n\r\n\r\n<p>FPGA\u6280\u8853\u306b\u306f\u3001\u8907\u6570\u306e\u5229\u70b9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>\u518d\u69cb\u6210\u53ef\u80fd\u306b\u3088\u308a\u3001\u30ab\u30b9\u30bf\u30e0\u30d3\u30eb\u30c9\u306eASIC\u3088\u308a\u3082\u67d4\u8edf\u6027\u304c\u3042\u308a\u307e\u3059<\/li>\r\n<li>\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u304c\u5f37\u5316\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001FPGA\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306fCPU\u3084GPU\u3088\u308a\u3082\u9ad8\u304f\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/li>\r\n<li>\u4f4e\u30ec\u30a4\u30c6\u30f3\u30b7\u3067\u30a4\u30f3\u30e9\u30a4\u30f3\u51e6\u7406\u3092\u5b9f\u884c\u3067\u304d\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u5fdc\u7b54\u304c\u53ef\u80fd<\/li>\r\n<li>GPU\u306f\u3001\u6027\u80fd\u3092\u30d0\u30c3\u30c1\u51e6\u7406\u306b\u4f9d\u5b58\u3057\u3066\u30ec\u30a4\u30c6\u30f3\u30b7\u3092\u5897\u52a0\u3055\u305b\u307e\u3059<\/li>\r\n<li>FPGA\u306f\u3001DMA\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u56de\u907f\u3057\u3066\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\/\u30b7\u30f3\u30af\u306b\u8fd1\u3065\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" width=\"500\" height=\"147\" class=\"wp-image-298\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3.png\" alt=\"FPGA Flexibility Vs. Efficiency\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3.png 500w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-1-artcile-3-300x88.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>\r\n<figcaption>FPGA Flexibility Vs. Efficiency<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">\u30b9\u30c8\u30ec\u30fc\u30b8\u4ed8\u8fd1\u306eFPGA\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30b1\u30fc\u30b9<\/h3>\r\n\r\n\r\n\r\n<p>\u305d\u306e\u969b\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8fd1\u304f\u3067FPGA\u51e6\u7406\u3092\u884c\u3046\u3068\u3001\u30db\u30b9\u30c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306f\u7d50\u679c\u306e\u307f\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u304c\u3001\u30c7\u30fc\u30bf\u306f\u30c9\u30e9\u30a4\u30d6\u306e\u8fd1\u304f\u306b\u3068\u3069\u307e\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30e1\u30e2\u30ea\u5185\u306e\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u3092FPGA\u306b\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u3068\u3001\u6700\u8fd1\u30a2\u30af\u30bb\u30b9\u3057\u305f\u30c7\u30fc\u30bf\u3092\u518d\u5229\u7528\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30ce\u30fc\u30c9\u6570\u304c\u975e\u5e38\u306b\u5c11\u306a\u304f\u3001\u6027\u80fd\u304c\u975e\u5e38\u306b\u9ad8\u3044\u975e\u5e38\u306b\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\/\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u3001\u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u524a\u6e1b\u3055\u308c\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>\u307e\u305f\u3001\u30c7\u30fc\u30bf\u30ec\u30a4\u30e4\u30fc\u306e\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30fc\u30bf\u54c1\u8cea\u306e\u6539\u5584\u30da\u30fc\u30b8\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"580\" height=\"265\" class=\"wp-image-299\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3.png\" alt=\"CPU Roofline \" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3.png 580w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-2-artcile-3-300x137.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/>\r\n<figcaption>CPU Roofline (Courtesy Google)<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>\u305d\u306e\u969b\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8fd1\u304f\u3067FPGA\u51e6\u7406\u3092\u884c\u3046\u3068\u3001\u30db\u30b9\u30c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306f\u7d50\u679c\u306e\u307f\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u304c\u3001\u30c7\u30fc\u30bf\u306f\u30c9\u30e9\u30a4\u30d6\u306e\u8fd1\u304f\u306b\u3068\u3069\u307e\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30e1\u30e2\u30ea\u5185\u306e\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u3092FPGA\u306b\u30a2\u30bf\u30c3\u30c1\u3059\u308b\u3068\u3001\u6700\u8fd1\u30a2\u30af\u30bb\u30b9\u3057\u305f\u30c7\u30fc\u30bf\u3092\u518d\u5229\u7528\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30ce\u30fc\u30c9\u6570\u304c\u975e\u5e38\u306b\u5c11\u306a\u304f\u3001\u6027\u80fd\u304c\u975e\u5e38\u306b\u9ad8\u3044\u975e\u5e38\u306b\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\/\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e\u5b9f\u88c5\u304c\u53ef\u80fd\u306b\u306a\u308a\u3001\u30d7\u30ed\u30bb\u30c3\u30b5\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u524a\u6e1b\u3055\u308c\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>\u307e\u305f\u3001\u30c7\u30fc\u30bf\u30ec\u30a4\u30e4\u30fc\u306e\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30fc\u30bf\u54c1\u8cea\u306e\u6539\u5584\u30da\u30fc\u30b8\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"878\" height=\"397\" class=\"wp-image-300\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3.png\" alt=\"Storage Acceleration\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3.png 878w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3-300x136.png 300w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-3-artcile-3-768x347.png 768w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/>\r\n<figcaption>Storage Acceleration<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>\u30c7\u30fc\u30bf\u304c\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u66f8\u304d\u8fbc\u307e\u308c\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u304b\u3089\u8aad\u307f\u53d6\u3089\u308c\u308b\u3068\u304d\u306b\u3001\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u64cd\u4f5c\u306e\u4e00\u90e8\u3092\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30bf\u306b\u30aa\u30d5\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002 \u4f4e\u30ec\u30a4\u30c6\u30f3\u30b7\u3068\u30a4\u30f3\u30e9\u30a4\u30f3\u51e6\u7406\u306b\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u6a5f\u80fd\u306e\u5229\u70b9\u304c\u3042\u308a\u307e\u3059\u3002 \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d5\u30c3\u30c8\u30d7\u30ea\u30f3\u30c8\u3092\u524a\u6e1b\u3059\u308b\u305f\u3081\u306b\u3001\u5727\u7e2e\u306a\u3069\u306e\u6a5f\u80fd\u304c\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30bf\u306b\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3<\/h3>\r\n\r\n\r\n\r\n<p>\u6df1\u5c64\u5b66\u7fd2\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3068\u540c\u69d8\u306b\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u63a5\u7d9a\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u3066\u3001\u591a\u304f\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304a\u3088\u3073\u8996\u899a\u5316\u6a5f\u80fd\u3092\u9ad8\u901f\u5316\u3067\u304d\u307e\u3059\u3002 FPGA\u3067\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u3001\u30c7\u30fc\u30bf\u306f\u30b9\u30c8\u30ec\u30fc\u30b8\u304b\u3089\u76f4\u63a5\u30d5\u30a7\u30c3\u30c1\u3055\u308c\u3001CPU\u306e\u307f\u306b\u306a\u308a\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001CPU\u306eIOPS\u8981\u4ef6\u304c\u7de9\u548c\u3055\u308c\u3001CPU\u306fFPGA\u306b\u30b3\u30de\u30f3\u30c9\u3092\u767a\u884c\u3059\u308b\u3060\u3051\u3067\u6e08\u307f\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>FPGA\u306e\u51e6\u7406\u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u306f\u975e\u5e38\u306b\u5c0f\u3055\u304f\u3001DMA\u8ee2\u9001\u3084\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u30d1\u30b9\u30b9\u30eb\u30fc\u3092\u884c\u3046\u5fc5\u8981\u304c\u306a\u3044\u305f\u3081\u3001\u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u306f\u3055\u3089\u306b\u4f4e\u304f\u306a\u308a\u3001\u5fdc\u7b54\u6027\u306e\u9ad8\u3044\u5fdc\u7b54\u6642\u9593\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002 \u3055\u3089\u306b\u3001FPGA\u306f\u30de\u30a4\u30af\u30ed\u30a8\u30f3\u30b8\u30f3\u3092\u4f7f\u7528\u3057\u3066\u8907\u6570\u306e\u30b9\u30ec\u30c3\u30c9\u3092\u5b9f\u88c5\u3067\u304d\u308b\u305f\u3081\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30bf\u30b9\u30af\u306e\u975e\u5e38\u306b\u9ad8\u3044\u30ec\u30d9\u30eb\u306e\u4e26\u5217\u51e6\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002 FPGA\u306f\u3001\u691c\u7d22\u3001\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3001\u7b97\u8853\u6f14\u7b97\u306a\u3069\u306e\u5225\u306e\u4e00\u822c\u7684\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u6a5f\u80fd\u3092\u9ad8\u901f\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">FPGA\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30af\u30e9\u30a6\u30c9\u30b5\u30dd\u30fc\u30c8<\/h3>\r\n\r\n\r\n\r\n<p>\u30af\u30e9\u30a6\u30c9\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u8981\u4ef6\u306b\u5f93\u3063\u3066\u3001\u30af\u30e9\u30a6\u30c9\u306eFPGA\u306f\u3055\u307e\u3056\u307e\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u7528\u306b\u518d\u30d7\u30ed\u30b0\u30e9\u30e0\u3055\u308c\u307e\u3057\u305f\u3002 \u305f\u3068\u3048\u3070\u3001Bing\u691c\u7d22\u306f\u305d\u306e\u4f7f\u7528\u6cd5\u3068\u52b9\u7387\u306b\u7cbe\u901a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>Microsoft Azure\u306b\u306f\u3001TOR\u306b\u76f4\u63a5\u63a5\u7d9a\u3057\u3066\u30c7\u30fc\u30bf\u3092\u30d5\u30a7\u30c3\u30c1\u3059\u308bFPGA\u304c\u3042\u308a\u3001\u30db\u30b9\u30c8\u30d7\u30ed\u30bb\u30c3\u30b5\u3092\u4e2d\u65ad\u3059\u308b\u3053\u3068\u306a\u304f\u3001\u30a4\u30f3\u30e9\u30a4\u30f3\u3067\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"238\" class=\"wp-image-302\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1.png\" alt=\"Microsoft Azure Architecture  \" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1.png 580w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-4-artcile-3-1-300x123.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/>\r\n<figcaption>Microsoft Azure Architecture (Courtesy Microsoft)<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>Amazon AWS\u306fF-1\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u63d0\u4f9b\u3057\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306f\u9ad8\u901f\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306bSSD\u30b9\u30c8\u30ec\u30fc\u30b8\u3067\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002 \u305f\u3060\u3057\u3001AWS\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u306f\u3001\u30db\u30b9\u30c8\u30d7\u30ed\u30bb\u30c3\u30b5\u304cDMA\u8ee2\u9001\u3092\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u3053\u3053\u3067\u3001\u30d7\u30ed\u30bb\u30c3\u30b5+ FPGA + SSD\u30b9\u30c8\u30ec\u30fc\u30b8\u306f\u30b9\u30c8\u30ec\u30fc\u30b8\u30ce\u30fc\u30c9\u3092\u5f62\u6210\u3067\u304d\u307e\u3059\u3002 \u975e\u5e38\u306b\u9ad8\u6027\u80fd\u3001\u4f4e\u9045\u5ef6\u3001\u5c11\u306a\u3044\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3067\u52d5\u4f5c\u3057\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"583\" height=\"218\" class=\"wp-image-303\" src=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3.png\" alt=\"Amazon AWS F-1 Instance Architecture\" srcset=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3.png 583w, https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/figure-5-artcile-3-300x112.png 300w\" sizes=\"(max-width: 583px) 100vw, 583px\" \/>\r\n<figcaption>Amazon AWS F-1 Instance Architecture<\/figcaption>\r\n<\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">\u4f55\u304b\u3092\u4e0e\u3048\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059<\/h3>\r\n\r\n\r\n\r\n<p>\u3068\u308a\u308f\u3051\u3001FPGA\u3092\u4f7f\u7528\u3057\u305f\u30af\u30e9\u30a6\u30c9\u30b9\u30c8\u30ec\u30fc\u30b8\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u8fd1\u3044\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u4e3b\u306a\u6b20\u70b9\u306e1\u3064\u306f\u3001FPGA\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u65b0\u3057\u3044API\u304c\u5b58\u5728\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3053\u3068\u3067\u3059\u3002 \u6df1\u5c64\u5b66\u7fd2\u306e\u5834\u5408\u3001\u3053\u308c\u306f\u6bd4\u8f03\u7684\u7c21\u5358\u3067\u3001\u95a2\u6570\u3092\u30ec\u30a4\u30e4\u30fc\u3054\u3068\u306e\u30ec\u30d9\u30eb\u3067\u30aa\u30d5\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u3082\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5168\u4f53\u3092\u30aa\u30d5\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<p>\u305f\u3060\u3057\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u6a19\u6e96\u306eSQL\u30b3\u30de\u30f3\u30c9\u306e\u4ee3\u308f\u308a\u306b\u3001\u7279\u5225\u306a\u30aa\u30d5\u30ed\u30fc\u30c9\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u4e00\u65b9\u3001\u5b8c\u5168\u306a\u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30bf\u30fc\u306fmemSQL\u3068\u540c\u69d8\u306b\u69cb\u7bc9\u3067\u304d\u3001\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306fFPGA\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">\u7d50\u679c<\/h3>\r\n\r\n\r\n\r\n<p>\u6df1\u5c64\u5b66\u7fd2\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001GPU\u3067\u30e2\u30c7\u30eb\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408\u3068\u6bd4\u8f03\u3057\u3066\u6027\u80fd\u304c\u7d045\u500d\u5411\u4e0a\u3057\u307e\u3057\u305f\u3002<\/p>\r\n\r\n\r\n\r\n<p>CPU\u3067\u30e2\u30c7\u30eb\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408\u3068\u6bd4\u8f03\u3057\u3066\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u7d0425\u500d\u5411\u4e0a\u3057\u307e\u3059\u3002 SQL \/ ETL\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u3001CPU\u3068\u6bd4\u8f03\u3057\u306625\u500d\u4ee5\u4e0a\u306e\u6539\u5584\u304c\u898b\u3089\u308c\u307e\u3057\u305f\u3002<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">\u7d50\u8ad6<\/h3>\r\n\r\n\r\n\r\n<p>\u307e\u305a\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u8fd1\u3065\u3051\u308b\u3088\u3046\u306b\u79fb\u52d5\u3059\u308b\u3068\u3001\u5168\u4f53\u7684\u306a\u96fb\u529b\u6d88\u8cbb\u3068\u52b9\u7387\u304c\u4f4e\u4e0b\u3057\u307e\u3059\u3002 \u78ba\u304b\u306b\u3001\u305d\u308c\u306f\u975e\u5e38\u306b\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3092\u63d0\u4f9b\u3057\u3001\u5358\u7d14\u306a\u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u9ad8\u6027\u80fdGPU\u3068\u30b9\u30a4\u30c3\u30c1\u306e\u5fc5\u8981\u6027\u3092\u6392\u9664\u3057\u307e\u3059\u3002 \u7b2c\u4e8c\u306b\u3001\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u8fd1\u3044\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3078\u306e\u79fb\u884c\u306f\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30af\u30e9\u30a6\u30c9\u306b\u9650\u5b9a\u3055\u308c\u307e\u305b\u3093\u304c\u3001Amazon AWS\u3068Microsoft Azure\u306e\u73fe\u5728\u306e\u30af\u30e9\u30a6\u30c9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u3082\u5b9f\u884c\u53ef\u80fd\u3067\u3059\u3002 \u3055\u3089\u306b\u3001Gyrus\u306f\u305d\u306e\u3088\u3046\u306aFPGA\u30aa\u30d5\u30ed\u30fc\u30c9\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u3044\u304f\u3064\u304b\u6210\u529f\u88cf\u306b\u5b9f\u88c5\u3057\u307e\u3057\u305f\u3002<\/p>\r\n<\/div>\r\n <script>\r\n  var x = document.getElementById(\"view1\");\r\n  var y = document.getElementById(\"view2\");\r\n  var btn11 = document.getElementById(\"btn11\");\r\n  var btn12 = document.getElementById(\"btn12\");\r\nfunction btn1(){\r\n  x.className = \"show\";\r\n  y.className = \"hide\";\r\n  btn12.className = \"btn-disabled\";\r\n  btn11.className = \"btnx\";\r\ndocument.getElementById(\"demon\").innerHTML = \"Compute near Storage in Cloud for FPGA acceleration\";\r\n\r\n}\r\nfunction btn2(){\r\n  x.className = \"hide\";\r\n  y.className = \"show\";\r\n  btn11.className = \"btn-disabled\";\r\n  btn12.className = \"btnx\";\r\n  \r\n document.getElementById(\"demon\").innerHTML = \"FPGA\u30a2\u30af\u30bb\u30e9\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u305f\u3081\u306b\u30af\u30e9\u30a6\u30c9\u5185\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u8fd1\u304f\u3067\u8a08\u7b97\";\r\n}\r\n\r\n\r\n\r\n\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Background This blog outlines the advantages of compute attached to storage and reference architecture to implement it in cloud with FPGAs. Almost all the deep learning algorithms are very memory intensive and it takes more energy (power) to get data into and out of the CPU\/GPU than the compute itself. Optimal sche[\u2026]<\/p>\n","protected":false},"author":3,"featured_media":305,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[6],"tags":[28,30,32,31,29],"class_list":["post-297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-compute-near-storage","tag-fpga-acceleration","tag-fpga-ml-ai","tag-machine-learning-acceleration","tag-storage-acceleration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies<\/title>\n<meta name=\"description\" content=\"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies\" \/>\n<meta property=\"og:description\" content=\"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\" \/>\n<meta property=\"og:site_name\" content=\"Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-01T07:00:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-28T03:23:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1439\" \/>\n\t<meta property=\"og:image:height\" content=\"858\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Chakra Parvathaneni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GyrusAI\" \/>\n<meta name=\"twitter:site\" content=\"@GyrusAI\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chakra Parvathaneni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\"},\"author\":{\"name\":\"Chakra Parvathaneni\",\"@id\":\"https:\/\/gyrus.ai\/blog\/#\/schema\/person\/ef9660a4074508218cfd688bf9095c02\"},\"headline\":\"Compute near Storage in Cloud for FPGA acceleration\",\"datePublished\":\"2018-10-01T07:00:11+00:00\",\"dateModified\":\"2021-01-28T03:23:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\"},\"wordCount\":1025,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg\",\"keywords\":[\"Compute near Storage\",\"FPGA Acceleration\",\"FPGA ML\/AI\",\"Machine Learning Acceleration\",\"Storage Acceleration\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\",\"url\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\",\"name\":\"Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies\",\"isPartOf\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg\",\"datePublished\":\"2018-10-01T07:00:11+00:00\",\"dateModified\":\"2021-01-28T03:23:53+00:00\",\"description\":\"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside\",\"breadcrumb\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage\",\"url\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg\",\"contentUrl\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg\",\"width\":1439,\"height\":858,\"caption\":\"Compute-near-Storage-Cloud\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gyrus.ai\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compute near Storage in Cloud for FPGA acceleration\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gyrus.ai\/blog\/#website\",\"url\":\"https:\/\/gyrus.ai\/blog\/\",\"name\":\"Gyrus AI\",\"description\":\"Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies\",\"publisher\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gyrus.ai\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/gyrus.ai\/blog\/#organization\",\"name\":\"Gyrus AI\",\"url\":\"https:\/\/gyrus.ai\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/gyrus.ai\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2025\/02\/gyrus-1.png\",\"contentUrl\":\"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2025\/02\/gyrus-1.png\",\"width\":11400,\"height\":4500,\"caption\":\"Gyrus AI\"},\"image\":{\"@id\":\"https:\/\/gyrus.ai\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/GyrusAI\",\"https:\/\/www.linkedin.com\/company\/gyrusai\/\",\"https:\/\/www.youtube.com\/channel\/UCk2GzLj6xp0A6Wqix1GWSkw\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/gyrus.ai\/blog\/#\/schema\/person\/ef9660a4074508218cfd688bf9095c02\",\"name\":\"Chakra Parvathaneni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g\",\"caption\":\"Chakra Parvathaneni\"},\"url\":\"https:\/\/gyrus.ai\/blog\/author\/chakra-parvathaneni\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies","description":"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/","og_locale":"en_US","og_type":"article","og_title":"Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies","og_description":"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside","og_url":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/","og_site_name":"Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies","article_published_time":"2018-10-01T07:00:11+00:00","article_modified_time":"2021-01-28T03:23:53+00:00","og_image":[{"width":1439,"height":858,"url":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg","type":"image\/jpeg"}],"author":"Chakra Parvathaneni","twitter_card":"summary_large_image","twitter_creator":"@GyrusAI","twitter_site":"@GyrusAI","twitter_misc":{"Written by":"Chakra Parvathaneni","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#article","isPartOf":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/"},"author":{"name":"Chakra Parvathaneni","@id":"https:\/\/gyrus.ai\/blog\/#\/schema\/person\/ef9660a4074508218cfd688bf9095c02"},"headline":"Compute near Storage in Cloud for FPGA acceleration","datePublished":"2018-10-01T07:00:11+00:00","dateModified":"2021-01-28T03:23:53+00:00","mainEntityOfPage":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/"},"wordCount":1025,"commentCount":0,"publisher":{"@id":"https:\/\/gyrus.ai\/blog\/#organization"},"image":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage"},"thumbnailUrl":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg","keywords":["Compute near Storage","FPGA Acceleration","FPGA ML\/AI","Machine Learning Acceleration","Storage Acceleration"],"articleSection":["Technology"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/","url":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/","name":"Compute near Storage in Cloud for FPGA acceleration - Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies","isPartOf":{"@id":"https:\/\/gyrus.ai\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage"},"image":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage"},"thumbnailUrl":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg","datePublished":"2018-10-01T07:00:11+00:00","dateModified":"2021-01-28T03:23:53+00:00","description":"Computing near storage in the cloud has more advantages in power consumption and performance, recommended to compute itself rather than getting data outside","breadcrumb":{"@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#primaryimage","url":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg","contentUrl":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2019\/05\/Compute-near-Storage-Cloud.jpg","width":1439,"height":858,"caption":"Compute-near-Storage-Cloud"},{"@type":"BreadcrumbList","@id":"https:\/\/gyrus.ai\/blog\/compute-near-storage-in-cloud-for-fpga-acceleration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gyrus.ai\/blog\/"},{"@type":"ListItem","position":2,"name":"Compute near Storage in Cloud for FPGA acceleration"}]},{"@type":"WebSite","@id":"https:\/\/gyrus.ai\/blog\/#website","url":"https:\/\/gyrus.ai\/blog\/","name":"Gyrus AI","description":"Gyrus AI | Blog | Insights on AI &amp; Intelligent Media Search, In-scene Ad Placement, Automated Video Anonymization Technologies","publisher":{"@id":"https:\/\/gyrus.ai\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gyrus.ai\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/gyrus.ai\/blog\/#organization","name":"Gyrus AI","url":"https:\/\/gyrus.ai\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/gyrus.ai\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2025\/02\/gyrus-1.png","contentUrl":"https:\/\/gyrus.ai\/blog\/wp-content\/uploads\/2025\/02\/gyrus-1.png","width":11400,"height":4500,"caption":"Gyrus AI"},"image":{"@id":"https:\/\/gyrus.ai\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/GyrusAI","https:\/\/www.linkedin.com\/company\/gyrusai\/","https:\/\/www.youtube.com\/channel\/UCk2GzLj6xp0A6Wqix1GWSkw"]},{"@type":"Person","@id":"https:\/\/gyrus.ai\/blog\/#\/schema\/person\/ef9660a4074508218cfd688bf9095c02","name":"Chakra Parvathaneni","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc0ddb7970b9bb38750d032d4827759280f344cea48df98f350ca6086059f462?s=96&d=mm&r=g","caption":"Chakra Parvathaneni"},"url":"https:\/\/gyrus.ai\/blog\/author\/chakra-parvathaneni\/"}]}},"_links":{"self":[{"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/posts\/297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":0,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/posts\/297\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/media\/305"}],"wp:attachment":[{"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/media?parent=297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/categories?post=297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gyrus.ai\/blog\/wp-json\/wp\/v2\/tags?post=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}