Shameless Plug - University of California,...

19
Virtual Machine and Bytecode for Optimization on Heterogeneous Systems Kerry A. Seitz, Jr. and Mark C. Lewis Trinity University, San Antonio, TX

Transcript of Shameless Plug - University of California,...

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

Questions?