LLVM Compiler for Risc-V Architecture: A Unique Approach to Vectorization
暫譯: LLVM 編譯器於 Risc-V 架構:向量化的獨特方法
Bataev, Alexey
商品描述
This book offers a comprehensive introduction to the RISC-V RVV extension and its integration with LLVM-based compilers. It covers the LLVM VPlan-based Loop Vectorizer and SLP Vectorizer, along with additional insights into the clang frontend, OpenMP support, and RVV-specific clang directives provided by SiFive.
Given the limited information currently available on RVV and its support in modern compilers, this book fills a crucial gap. RVV introduces a unique approach to vectorization--Vector Length Agnostic (VLA) vectorization--which stands out from the fixed vectors of x86 and the runtime-defined, yet fixed, ARM-based SVE and SVE2 extensions.
Readers will gain an understanding of RVV-specific VLA-based vectorization support in LLVM-based compilers, which are still under development. The book also provides early insights into the ongoing support for RVV in LLVM.
What You'll Learn
- Gain foundational knowledge of RISC-V and the RVV extension.
- Learn design and implementation of LLVM vectorizers.
- Learn to optimize performance with RVV-specific clang directives.
- Explore the unique Vector Length Agnostic (VLA) vectorization.
- Discover the differences between RVV and other vector extensions.
Who This Book Is For
1. For the engineers, who would like to get more info about RISC-V in general and RISC-V Vectorextension particularly.
2. For the developers, trying to get the performance using RVV.
3. For LLVM compiler developers, trying or learn more about vectorization support in LLVM.4.
4. For the students, who learn new about RISC- V, its extensions, interested in compiler development.
商品描述(中文翻譯)
這本書提供了對 RISC-V RVV 擴展及其與基於 LLVM 的編譯器整合的全面介紹。內容涵蓋了基於 LLVM VPlan 的迴圈向量化器和 SLP 向量化器,以及對 clang 前端、OpenMP 支援和 SiFive 提供的 RVV 特定 clang 指令的額外見解。
考慮到目前有關 RVV 及其在現代編譯器中支援的資訊有限,本書填補了一個重要的空白。RVV 引入了一種獨特的向量化方法——向量長度無關(Vector Length Agnostic, VLA)向量化,這與 x86 的固定向量以及基於 ARM 的 SVE 和 SVE2 擴展的運行時定義但固定的向量化方式有所不同。
讀者將了解在仍在開發中的基於 LLVM 的編譯器中 RVV 特定的 VLA 基礎向量化支援。本書還提供了對 LLVM 中 RVV 持續支援的早期見解。
**您將學到的內容**
- 獲得 RISC-V 和 RVV 擴展的基礎知識。
- 學習 LLVM 向量化器的設計和實現。
- 學習如何使用 RVV 特定的 clang 指令來優化性能。
- 探索獨特的向量長度無關(VLA)向量化。
- 發現 RVV 與其他向量擴展之間的差異。
**本書適合誰**
1. 對 RISC-V 一般資訊及 RISC-V 向量擴展特別感興趣的工程師。
2. 希望利用 RVV 獲得性能的開發者。
3. 嘗試或想了解 LLVM 中向量化支援的 LLVM 編譯器開發者。
4. 對 RISC-V 及其擴展感興趣,並學習編譯器開發的學生。
作者簡介
Alexey Bataev is an experienced compiler engineer with a proven track record in software systems development, specializing in compilers, embedded platforms, and toolchain infrastructure. Areas of expertise include C++, LLVM, Clang, SLP Vectorization, OpenMP, Embedded Linux, and test automation. Holds a Ph.D. in Computer Science. Maintainer of the SLP Vectorizer in LLVM, OpenMP support in Clang. Author of peer-reviewed publications in the field of compiler technology.
作者簡介(中文翻譯)
Alexey Bataev 是一位經驗豐富的編譯器工程師,在軟體系統開發方面有著良好的紀錄,專注於編譯器、嵌入式平台和工具鏈基礎設施。專業領域包括 C++、LLVM、Clang、SLP 向量化、OpenMP、嵌入式 Linux 和測試自動化。擁有計算機科學博士學位。是 LLVM 中 SLP 向量化器和 Clang 中 OpenMP 支援的維護者。曾在編譯器技術領域發表過同行評審的論文。