{"id":33,"date":"2022-12-05T15:52:12","date_gmt":"2022-12-05T15:52:12","guid":{"rendered":"https:\/\/www.isi.edu\/research-groups-scx\/?page_id=33"},"modified":"2022-12-06T17:25:18","modified_gmt":"2022-12-06T17:25:18","slug":"high-productivity-tools-for-mapping-to-heterogeneous-architectures","status":"publish","type":"page","link":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/","title":{"rendered":"High Productivity Tools For Mapping To Heterogeneous Architectures"},"content":{"rendered":"\n\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png\" alt=\"spicy_chart2\" itemprop=\"image\" height=\"475\" width=\"800\" title=\"spicy_chart2\" onerror=\"this.style.display='none'\"  \/>\n\t<p><a href=\"https:\/\/www.isi.edu\/research-groups-rcg\/projects-new\/completed-projects\/#spicy\">Hot &amp; Spicy\u00a0<\/a>is an open-source infrastructure and tool suite for integrating FPGA accelerators in Python applications, provided entirely as Python source code. This suite of tools eases the packaging, integration, and binding of accelerators and their C\/C++ based drivers callable from a Python application. The Hot &amp; Spicy tools can: (1) translate Python functions to HLS-suitable C functions, (2) generate Python C wrapper bindings, (3) automate the FPGA EDA tool flow, and (4) retarget Python source code to use accelerated libraries. For FPGA experts, this enables increased productivity and supports research on each stage of the flow by providing a framework to integrate additional compilers and optimizations. For everyone else this enables fast, consistent, acceleration of applications on FPGAs. We describe the design principles and flows for supporting high-level Python abstractions in an FPGA development flow. Then we evaluate the overheads of calling C\/C++ routines from Python. Lastly, we show the results of accelerating a kernel in a Python image processing application and achieve a 39,137x speedup over the original Python implementation, and 6x speedup over an high-performance, hand-optimized OpenCV library implementation.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Hot &amp; Spicy\u00a0is an open-source infrastructure and tool suite for integrating FPGA accelerators in Python applications, provided entirely as Python source code. This suite of tools eases the packaging, integration, and binding of accelerators and their C\/C++ based drivers callable from a Python application. The Hot &amp; Spicy tools can: (1) translate Python functions to&hellip;<\/p>\n","protected":false},"author":421,"featured_media":0,"parent":25,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"news_source":"","news_author":"","external_news_link":"","footnotes":""},"class_list":["post-33","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX\" \/>\n<meta property=\"og:description\" content=\"Hot &amp; Spicy\u00a0is an open-source infrastructure and tool suite for integrating FPGA accelerators in Python applications, provided entirely as Python source code. This suite of tools eases the packaging, integration, and binding of accelerators and their C\/C++ based drivers callable from a Python application. The Hot &amp; Spicy tools can: (1) translate Python functions to&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/\" \/>\n<meta property=\"og:site_name\" content=\"SpaceCubeX\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-06T17:25:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/\",\"url\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/\",\"name\":\"High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX\",\"isPartOf\":{\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png\",\"datePublished\":\"2022-12-05T15:52:12+00:00\",\"dateModified\":\"2022-12-06T17:25:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage\",\"url\":\"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png\",\"contentUrl\":\"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png\",\"width\":800,\"height\":475,\"caption\":\"Hot and Spicy flow diagram\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.isi.edu\/research-groups-scx\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Research\",\"item\":\"https:\/\/www.isi.edu\/research-groups-scx\/research\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"High Productivity Tools For Mapping To Heterogeneous Architectures\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.isi.edu\/research-groups-scx\/#website\",\"url\":\"https:\/\/www.isi.edu\/research-groups-scx\/\",\"name\":\"SpaceCubeX\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.isi.edu\/research-groups-scx\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX","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:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/","og_locale":"en_US","og_type":"article","og_title":"High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX","og_description":"Hot &amp; Spicy\u00a0is an open-source infrastructure and tool suite for integrating FPGA accelerators in Python applications, provided entirely as Python source code. This suite of tools eases the packaging, integration, and binding of accelerators and their C\/C++ based drivers callable from a Python application. The Hot &amp; Spicy tools can: (1) translate Python functions to&hellip;","og_url":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/","og_site_name":"SpaceCubeX","article_modified_time":"2022-12-06T17:25:18+00:00","og_image":[{"url":"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/","url":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/","name":"High Productivity Tools For Mapping To Heterogeneous Architectures - SpaceCubeX","isPartOf":{"@id":"https:\/\/www.isi.edu\/research-groups-scx\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage"},"image":{"@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage"},"thumbnailUrl":"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png","datePublished":"2022-12-05T15:52:12+00:00","dateModified":"2022-12-06T17:25:18+00:00","breadcrumb":{"@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#primaryimage","url":"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png","contentUrl":"https:\/\/www.isi.edu\/research-groups-scx\/wp-content\/uploads\/sites\/30\/2022\/12\/spicy_chart2.png","width":800,"height":475,"caption":"Hot and Spicy flow diagram"},{"@type":"BreadcrumbList","@id":"https:\/\/www.isi.edu\/research-groups-scx\/research\/high-productivity-tools-for-mapping-to-heterogeneous-architectures\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.isi.edu\/research-groups-scx\/"},{"@type":"ListItem","position":2,"name":"Research","item":"https:\/\/www.isi.edu\/research-groups-scx\/research\/"},{"@type":"ListItem","position":3,"name":"High Productivity Tools For Mapping To Heterogeneous Architectures"}]},{"@type":"WebSite","@id":"https:\/\/www.isi.edu\/research-groups-scx\/#website","url":"https:\/\/www.isi.edu\/research-groups-scx\/","name":"SpaceCubeX","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.isi.edu\/research-groups-scx\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/pages\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/users\/421"}],"replies":[{"embeddable":true,"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":0,"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/pages\/33\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/pages\/25"}],"wp:attachment":[{"href":"https:\/\/www.isi.edu\/research-groups-scx\/wp-json\/wp\/v2\/media?parent=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}