Vector coprocessor virtualization for simultaneous multithreading
Document Type
Article
Publication Date
3-1-2016
Abstract
Vector coprocessors (VPs), commonly being assigned exclusively to a single thread/core, are not often performance and energy efficient due to mismatches with the vector needs of individual applications. We present in this article an easy-to-implement VP virtualization technique that, when applied, enables a multithreaded VP to simultaneously execute multiple threads of similar or arbitrary vector lengths to achieve improved aggregate utilization. With a vector register file (VRF) virtualization technique invented to dynamically allocate physical vector registers to threads, our VP virtualization approach improves programmer productivity by providing at runtime a distinct physical register name space to each competing thread, thus eliminating the need to solve register-name conflicts statically. We applied our virtualization technique to a multithreaded VP and prototyped an FPGA-based multicore processor system that supports VP sharing as well as power gating for better energy efficiency. Under the dynamic creation of disparate threads, our benchmarking results show impressive VP speedups of up to 333% and total energy savings of up to 37% with proper thread scheduling and power gating compared to a similar-sized system that allows VP access to just one thread at a time.
Identifier
84973887139 (Scopus)
Publication Title
ACM Transactions on Embedded Computing Systems
External Full Text Location
https://doi.org/10.1145/2898364
e-ISSN
15583465
ISSN
15399087
Issue
3
Volume
15
Recommended Citation
Lu, Yaojie; Rooholamin, Seyedamin; and Ziavras, Sotirios G., "Vector coprocessor virtualization for simultaneous multithreading" (2016). Faculty Publications. 10643.
https://digitalcommons.njit.edu/fac_pubs/10643
