Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

An Intermediate Representation for Composable Typed Streaming Dataflow Designs (2308.13436v3)

Published 25 Aug 2023 in cs.PL

Abstract: Tydi is an open specification for streaming dataflow designs in digital circuits, allowing designers to express how composite and variable-length data structures are transferred over streams using clear, data-centric types. These data types are extensively used in a many application domains, such as big data and SQL applications. This way, Tydi provides a higher-level method for defining interfaces between components as opposed to existing bit and byte-based interface specifications. In this paper, we introduce an open-source intermediate representation (IR) which allows for the declaration of Tydi's types. The IR enables creating and connecting components with Tydi Streams as interfaces, called Streamlets. It also lets backends for synthesis and simulation retain high-level information, such as documentation. Types and Streamlets can be easily reused between multiple projects, and Tydi's streams and type hierarchy can be used to define interface contracts, which aid collaboration when designing a larger system. The IR codifies the rules and properties established in the Tydi specification and serves to complement computation-oriented hardware design tools with a data-centric view on interfaces. To support different backends and targets, the IR is focused on expressing interfaces, and complements behavior described by hardware description languages and other IRs. Additionally, a testing syntax for the verification of inputs and outputs against abstract streams of data, and for substituting interdependent components, is presented which allows for the specification of behavior. To demonstrate this IR, we have created a grammar, parser, and query system, and paired these with a backend targeting VHDL.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (35)
  1. Advanced Micro Devices, Inc. 2022a. Intellectual Property. https://www.xilinx.com/products/intellectual-property.html
  2. Advanced Micro Devices, Inc. 2022b. Interfaces for Vivado IP Flow • Vitis High-Level Synthesis User Guide (UG1399) • Reader • Documentation Portal. https://docs.xilinx.com/r/en-US/ug1399-vitis-hls/Interfaces-for-Vivado-IP-Flow
  3. OctoRay: Framework for Scalable FPGA Cluster Acceleration of Python Big Data Applications. In 2023 IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC).
  4. Arm Limited. 2010. AMBA 4 AXI4-Stream Protocol Specification. https://developer.arm.com/documentation/ihi0051/a/Introduction/About-the-AXI4-Stream-protocol
  5. Arm Limited. 2021. An Introduction to AMBA AXI. https://developer.arm.com/documentation/102202/0200/
  6. Increasing Design Productivity through Core Reuse, Meta-data Encapsulation, and Synthesis. In 2010 International Conference on Field Programmable Logic and Applications. 538–543. https://doi.org/10.1109/FPL.2010.106
  7. Lime: A Java-compatible and Synthesizable Language for Heterogeneous Architectures. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA ’10). Association for Computing Machinery, New York, NY, USA, 89–108. https://doi.org/10.1145/1869459.1869469
  8. Chisel: Constructing Hardware in a Scala Embedded Language. In DAC Design Automation Conference 2012. 1212–1221. https://doi.org/10.1145/2228360.2228584
  9. Joshua Barretto. 2022. Chumsky. https://github.com/zesterer/chumsky
  10. A Survey on the Evolution of Stream Processing Systems. https://doi.org/10.48550/arXiv.2008.00842 arXiv:2008.00842 [cs]
  11. FPGA Acceleration for Big Data Analytics: Challenges and Opportunities. IEEE Circuits and Systems Magazine 21, 2 (2021), 30–47. https://doi.org/10.1109/MCAS.2021.3071608
  12. Optimus: Efficient Realization of Streaming Applications on FPGAs. In Proceedings of the 2008 International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES ’08). Association for Computing Machinery, New York, NY, USA, 41–50. https://doi.org/10.1145/1450095.1450105
  13. Intel Corporation. 2021. 1. Introduction to Intel® FPGA IP Cores. https://www.intel.com/content/www/us/en/docs/programmable/683102/21-3/introduction-to-cores.html
  14. Intel Corporation. 2022. 5. Avalon® Streaming Interfaces. https://www.intel.com/content/www/us/en/docs/programmable/683091/20-1/streaming-interfaces.html
  15. A Survey of Distributed Data Stream Processing Frameworks. IEEE Access 7 (2019), 154300–154316. https://doi.org/10.1109/ACCESS.2019.2946884
  16. Reusability Is FIRRTL Ground: Hardware Construction Languages, Compiler Frameworks, and Transformations. In 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 209–216. https://doi.org/10.1109/ICCAD.2017.8203780
  17. M.F. Jacome and H.P. Peixoto. 2001. A Survey of Digital Design Reuse. IEEE Design Test of Computers 18, 3 (May 2001), 98–107. https://doi.org/10.1109/54.922806
  18. HPVM: Heterogeneous Parallel Virtual Machine. In Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP ’18). Association for Computing Machinery, New York, NY, USA, 68–80. https://doi.org/10.1145/3178487.3178493
  19. LLVM Community. 2022. ”CIRCT” / Circuit IR Compilers and Tools. LLVM. https://github.com/llvm/circt
  20. A Survey and Evaluation of FPGA High-Level Synthesis Tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 35, 10 (Oct. 2016), 1591–1604. https://doi.org/10.1109/TCAD.2015.2513673
  21. Stream-Dataflow Acceleration. In 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA). 416–429. https://doi.org/10.1145/3079856.3080255
  22. Tydi: An Open Specification for Complex Data Structures Over Hardware Streams. IEEE Micro 40, 4 (July 2020), 120–130. https://doi.org/10.1109/MM.2020.2996373
  23. Supporting Columnar In-memory Formats on FPGA: The Hardware Design of Fletcher for Apache Arrow. In Applied Reconfigurable Computing. 32–47.
  24. Fletcher: A Framework to Efficiently Integrate FPGA Accelerators with Apache Arrow. In 2019 29th International Conference on Field Programmable Logic and Applications (FPL). 270–277. https://doi.org/10.1109/FPL.2019.00051
  25. Franjo Plavec. 2010. Stream Computing on Fpgas. Ph. D. Dissertation. University of Toronto, CAN.
  26. SCAFFI: An Intrachip FPGA Asynchronous Interface Based on Hard Macros. In 2007 25th International Conference on Computer Design. IEEE, Lake Tahoe, CA, USA, 541–546. https://doi.org/10.1109/ICCD.2007.4601950
  27. Rust Compiler Team. 2021. Queries: Demand-Driven Compilation - Guide to Rustc Development. https://rustc-dev-guide.rust-lang.org/query.html
  28. salsa-rs. 2022. Salsa. salsa. https://github.com/salsa-rs/salsa
  29. Matthias J. Sax. 2018. Apache Kafka. In Encyclopedia of Big Data Technologies, Sherif Sakr and Albert Zomaya (Eds.). Springer International Publishing, Cham, 1–8. https://doi.org/10.1007/978-3-319-63962-8_196-1
  30. LLHD: A Multi-level Intermediate Representation for Hardware Description Languages. arXiv:2004.03494 [cs] (April 2020). arXiv:2004.03494 [cs] http://arxiv.org/abs/2004.03494
  31. StreamIt: A Language for Streaming Applications. In International Conference on Compiler Construction. Grenoble, France. http://groups.csail.mit.edu/commit/papers/02/streamit-cc.pdf
  32. Fleet: A Framework for Massively Parallel Streaming on FPGAs. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, New York, NY, USA, 639–651. http://doi.org/10.1145/3373376.3378495
  33. Tydi-lang: a language for typed streaming hardware. In 2023 IEEE/ACM International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC).
  34. Introduction - Tydi. https://abs-tudelft.github.io/tydi/index.html
  35. Physical Streams - Tydi. https://abs-tudelft.github.io/tydi/specification/physical.html
Citations (3)

Summary

We haven't generated a summary for this paper yet.