HPVM-HDC: A Heterogeneous Programming System for Accelerating Hyperdimensional Computing
Fuente:
arXiv
Saved in:
| Main Authors: | , , , , , , , , , |
|---|---|
| Format: | Preprint |
| Published: |
2024
|
| Subjects: | |
| Online Access: | |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| _version_ | 1866908415370985472 |
|---|---|
| author | Arbore, Russel Routh, Xavier Noor, Abdul Rafae Kothari, Akash Yang, Haichao Xu, Weihong Pinge, Sumukh Zhou, Minxuan Rosing, Tajana Adve, Vikram |
| author_facet | Arbore, Russel Routh, Xavier Noor, Abdul Rafae Kothari, Akash Yang, Haichao Xu, Weihong Pinge, Sumukh Zhou, Minxuan Rosing, Tajana Adve, Vikram |
| contents | Hyperdimensional Computing (HDC), a technique inspired by cognitive models of computation, has been proposed as an efficient and robust alternative basis for machine learning. HDC programs are often manually written in low-level and target specific languages targeting CPUs, GPUs, and FPGAs -- these codes cannot be easily retargeted onto HDC-specific accelerators. No previous programming system enables productive development of HDC programs and generates efficient code for several hardware targets.
We propose a heterogeneous programming system for HDC: a novel programming language, HDC++, for writing applications using a unified programming model, including HDC-specific primitives to improve programmability, and a heterogeneous compiler, HPVM-HDC, that provides an intermediate representation for compiling HDC programs to many hardware targets. We implement two tuning optimizations, automatic binarization and reduction perforation, that exploit the error resilient nature of HDC. Our evaluation shows that HPVM-HDC generates performance-competitive code for CPUs and GPUs, achieving a geomean speed-up of 1.17x over optimized baseline CUDA implementations with a geomean reduction in total lines of code of 1.6x across CPUs and GPUs. Additionally, HPVM-HDC targets an HDC Digital ASIC and an HDC ReRAM accelerator simulator, enabling the first execution of HDC applications on these devices. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2410_15179 |
| institution | arXiv |
| publishDate | 2024 |
| record_format | arxiv |
| spellingShingle | HPVM-HDC: A Heterogeneous Programming System for Accelerating Hyperdimensional Computing Arbore, Russel Routh, Xavier Noor, Abdul Rafae Kothari, Akash Yang, Haichao Xu, Weihong Pinge, Sumukh Zhou, Minxuan Rosing, Tajana Adve, Vikram Programming Languages Hyperdimensional Computing (HDC), a technique inspired by cognitive models of computation, has been proposed as an efficient and robust alternative basis for machine learning. HDC programs are often manually written in low-level and target specific languages targeting CPUs, GPUs, and FPGAs -- these codes cannot be easily retargeted onto HDC-specific accelerators. No previous programming system enables productive development of HDC programs and generates efficient code for several hardware targets. We propose a heterogeneous programming system for HDC: a novel programming language, HDC++, for writing applications using a unified programming model, including HDC-specific primitives to improve programmability, and a heterogeneous compiler, HPVM-HDC, that provides an intermediate representation for compiling HDC programs to many hardware targets. We implement two tuning optimizations, automatic binarization and reduction perforation, that exploit the error resilient nature of HDC. Our evaluation shows that HPVM-HDC generates performance-competitive code for CPUs and GPUs, achieving a geomean speed-up of 1.17x over optimized baseline CUDA implementations with a geomean reduction in total lines of code of 1.6x across CPUs and GPUs. Additionally, HPVM-HDC targets an HDC Digital ASIC and an HDC ReRAM accelerator simulator, enabling the first execution of HDC applications on these devices. |
| title | HPVM-HDC: A Heterogeneous Programming System for Accelerating Hyperdimensional Computing |
| topic | Programming Languages |
| url | https://arxiv.org/abs/2410.15179 |