![Page 1: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/1.jpg)
Virtual Machine and Bytecode for
Optimization on Heterogeneous Systems
Kerry A. Seitz, Jr. and Mark C. Lewis
Trinity University, San Antonio, TX
![Page 2: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/2.jpg)
Acknowledgments
Trinity University Department of Computer Science
Trinity University Mach Fellowship Program
![Page 3: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/3.jpg)
Overview
Introduction
Bytecode Design
Implementation
Conclusion
![Page 4: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/4.jpg)
Heterogeneous Computing
Use all hardware
components available
CPU, GPU, FPGA, DSP
Increase Performance
Hardware independent
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 5: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/5.jpg)
Heterogeneous Computing Challenges
Different programming models
Different combinations of devices
Little development tool support
OpenCL, CUDA
Developer training
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 6: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/6.jpg)
Motivations
Make heterogeneous computing easier
Runtime code optimizations
Platform independence
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 7: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/7.jpg)
Annotation
Provide optimization hints to VM
Can be disregarded until optimization
Backwards compatibility
Two formats
Within instructions
Annotation file
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 8: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/8.jpg)
Annotation Examples
Immutability
Escape thread/stack frame
Generics/Type Erasure
Specify Device
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 9: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/9.jpg)
Popular Virtual Machines
Java – stack-based
Dalvik – register-based (16 registers)
Both have issues
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 10: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/10.jpg)
Virtual Machine Design
Variables
216 per stack frame
Type associated with each
Annotations
Class Files
Header modeled after Dalvik
Annotations
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 11: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/11.jpg)
Instruction Format
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 12: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/12.jpg)
Instruction Format
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 13: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/13.jpg)
Instruction Format
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 14: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/14.jpg)
Instruction Format
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 15: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/15.jpg)
Programming Language
Scala OpenCL
High-level
Object oriented/functional
Compiles to JVM
Lower-level
Heterogeneous
Platform independent
(with correct drivers)
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 16: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/16.jpg)
GPU Execution
Uses OpenCL (through JavaCL)
Compiles bytecode instructions into OpenCL kernel
Parallelizes over an array of data
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 17: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/17.jpg)
Summary
Heterogeneous computing is hard, but increasingly
essential
Designed bytecode to aid in heterogeneous computing
Optimization hints in annotations
Platform independent
Implementation in Scala with OpenCL
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 18: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/18.jpg)
Future research
Design more annotations
Implement more annotations
Develop lower level interpreter/JIT compiler
Explore program analysis techniques
| Introduction | Bytecode Design | Implementation | Conclusion |
![Page 19: Shameless Plug - University of California, Daviscsiflabs.cs.ucdavis.edu/~kaseitz/publications/2012/... · 2014. 10. 7. · Title: Shameless Plug Author: Kerry Seitz Created Date:](https://reader034.vdocuments.net/reader034/viewer/2022051903/5ff360a22c3dbd18b8678f25/html5/thumbnails/19.jpg)
Questions?