PyLog: An Algorithm-Centric Python-Based FPGA Programming and Synthesis Flow.

Saved in:
Bibliographic Details
Title: PyLog: An Algorithm-Centric Python-Based FPGA Programming and Synthesis Flow.
Authors: Huang, Sitao, Wu, Kun, Jeong, Hyunmin, Wang, Chengyue, Chen, Deming, Hwu, Wen-Mei
Source: IEEE Transactions on Computers; Dec2021, Vol. 70 Issue 12, p2015-2028, 14p
Subject Terms: PYTHON programming language, FIELD programmable gate arrays, ALGORITHMS
Abstract: The exploding complexity and computation efficiency requirements of applications are stimulating a strong demand for hardware acceleration with heterogeneous platforms such as FPGAs. However, a high-quality FPGA design is very hard to create and optimize as it requires FPGA expertise and a long design iteration time. In contrast, software applications are typically developed in a short development cycle, with high-level languages like Python, which have much higher levels of abstraction than all existing hardware design flows. To close this gap between hardware design flows and software applications, and simplify FPGA programming, we create PyLog, a high-level, algorithm-centric Python-based programming and synthesis flow for FPGA. PyLog is powered by a set of compiler optimization passes and a type inference system to generate high-quality hardware design. It abstracts away the implementation details, and allows designers to focus on algorithm specification. PyLog takes in Python functions, generates PyLog intermediate representation (PyLog IR), performs several optimization passes, including pragma insertion, design space exploration, and memory customization, etc., and creates complete FPGA system designs. PyLog also has a runtime that allows users to run the PyLog code directly on the target FPGA platform without any extra code development. The whole design flow is automated. Evaluation shows that PyLog significantly improves FPGA design productivity and generates highly efficient FPGA designs that outperform highly optimized CPU implementation and state-of-the-art FPGA implementation by $3.17\times$ 3. 17 × and $1.24\times$ 1. 24 × on average. [ABSTRACT FROM AUTHOR]
Copyright of IEEE Transactions on Computers is the property of IEEE and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Complementary Index
FullText Text:
  Availability: 0
CustomLinks:
  – Url: https://resolver.ebscohost.com/openurl?sid=EBSCO:edb&genre=article&issn=00189340&ISBN=&volume=70&issue=12&date=20211201&spage=2015&pages=2015-2028&title=IEEE Transactions on Computers&atitle=PyLog%3A%20An%20Algorithm-Centric%20Python-Based%20FPGA%20Programming%20and%20Synthesis%20Flow.&aulast=Huang%2C%20Sitao&id=DOI:10.1109/TC.2021.3123465
    Name: Full Text Finder
    Category: fullText
    Text: Full Text Finder
    Icon: https://imageserver.ebscohost.com/branding/images/FTF.gif
    MouseOverText: Full Text Finder
  – Url: https://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=EBSCO&SrcAuth=EBSCO&DestApp=WOS&ServiceName=TransferToWoS&DestLinkType=GeneralSearchSummary&Func=Links&author=Huang%20S
    Name: ISI
    Category: fullText
    Text: Nájsť tento článok vo Web of Science
    Icon: https://imagesrvr.epnet.com/ls/20docs.gif
    MouseOverText: Nájsť tento článok vo Web of Science
Header DbId: edb
DbLabel: Complementary Index
An: 153710124
RelevancyScore: 916
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 915.657653808594
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: PyLog: An Algorithm-Centric Python-Based FPGA Programming and Synthesis Flow.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Huang%2C+Sitao%22">Huang, Sitao</searchLink><br /><searchLink fieldCode="AR" term="%22Wu%2C+Kun%22">Wu, Kun</searchLink><br /><searchLink fieldCode="AR" term="%22Jeong%2C+Hyunmin%22">Jeong, Hyunmin</searchLink><br /><searchLink fieldCode="AR" term="%22Wang%2C+Chengyue%22">Wang, Chengyue</searchLink><br /><searchLink fieldCode="AR" term="%22Chen%2C+Deming%22">Chen, Deming</searchLink><br /><searchLink fieldCode="AR" term="%22Hwu%2C+Wen-Mei%22">Hwu, Wen-Mei</searchLink>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: IEEE Transactions on Computers; Dec2021, Vol. 70 Issue 12, p2015-2028, 14p
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22PYTHON+programming+language%22">PYTHON programming language</searchLink><br /><searchLink fieldCode="DE" term="%22FIELD+programmable+gate+arrays%22">FIELD programmable gate arrays</searchLink><br /><searchLink fieldCode="DE" term="%22ALGORITHMS%22">ALGORITHMS</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: The exploding complexity and computation efficiency requirements of applications are stimulating a strong demand for hardware acceleration with heterogeneous platforms such as FPGAs. However, a high-quality FPGA design is very hard to create and optimize as it requires FPGA expertise and a long design iteration time. In contrast, software applications are typically developed in a short development cycle, with high-level languages like Python, which have much higher levels of abstraction than all existing hardware design flows. To close this gap between hardware design flows and software applications, and simplify FPGA programming, we create PyLog, a high-level, algorithm-centric Python-based programming and synthesis flow for FPGA. PyLog is powered by a set of compiler optimization passes and a type inference system to generate high-quality hardware design. It abstracts away the implementation details, and allows designers to focus on algorithm specification. PyLog takes in Python functions, generates PyLog intermediate representation (PyLog IR), performs several optimization passes, including pragma insertion, design space exploration, and memory customization, etc., and creates complete FPGA system designs. PyLog also has a runtime that allows users to run the PyLog code directly on the target FPGA platform without any extra code development. The whole design flow is automated. Evaluation shows that PyLog significantly improves FPGA design productivity and generates highly efficient FPGA designs that outperform highly optimized CPU implementation and state-of-the-art FPGA implementation by $3.17\times$ 3. 17 × and $1.24\times$ 1. 24 × on average. [ABSTRACT FROM AUTHOR]
– Name: Abstract
  Label:
  Group: Ab
  Data: <i>Copyright of IEEE Transactions on Computers is the property of IEEE and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://erproxy.cvtisr.sk/sfx/access?url=https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=153710124
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1109/TC.2021.3123465
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 14
        StartPage: 2015
    Subjects:
      – SubjectFull: PYTHON programming language
        Type: general
      – SubjectFull: FIELD programmable gate arrays
        Type: general
      – SubjectFull: ALGORITHMS
        Type: general
    Titles:
      – TitleFull: PyLog: An Algorithm-Centric Python-Based FPGA Programming and Synthesis Flow.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Huang, Sitao
      – PersonEntity:
          Name:
            NameFull: Wu, Kun
      – PersonEntity:
          Name:
            NameFull: Jeong, Hyunmin
      – PersonEntity:
          Name:
            NameFull: Wang, Chengyue
      – PersonEntity:
          Name:
            NameFull: Chen, Deming
      – PersonEntity:
          Name:
            NameFull: Hwu, Wen-Mei
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 12
              Text: Dec2021
              Type: published
              Y: 2021
          Identifiers:
            – Type: issn-print
              Value: 00189340
          Numbering:
            – Type: volume
              Value: 70
            – Type: issue
              Value: 12
          Titles:
            – TitleFull: IEEE Transactions on Computers
              Type: main
ResultId 1