Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Perry Cheng is active.

Publication


Featured researches published by Perry Cheng.


ACM | 2012

Compiling a high-level language for GPUs

Christophe Dubach; Perry Cheng; Rodric M. Rabbah; David F. Bacon; Stephen J. Fink

Languages such as OpenCL and CUDA offer a standard interface for general-purpose programming of GPUs. However, with these languages, programmers must explicitly manage numerous low-level details involving communication and synchronization. This burden makes programming GPUs difficult and error-prone, rendering these powerful devices inaccessible to most programmers. We desire a higher-level programming model that makes GPUs more accessible while also effectively exploiting their computational power. This paper presents features of Lime, a new Java-compatible language targeting heterogeneous systems, that allow an optimizing compiler to generate high quality GPU code. The key insight is that the language type system enforces isolation and immutability invariants that allow the compiler to optimize for a GPU without heroic compiler analysis. Our compiler attains GPU speedups between 75% and 140% of the performance of native OpenCL code.


1st Summit on Advances in Programming Languages (SNAPL 2015) | 2015

Growing a Software Language for Hardware Design

Joshua S. Auerbach; David F. Bacon; Perry Cheng; Stephen J. Fink; Rodric M. Rabbah; Sunil Shukla

The Liquid Metal project at IBM Research aimed to design and implement a new programming language called Lime to address some of the challenges posed by heterogeneous systems. Lime is a Java-compatible programming language with features designed to facilitate high level synthesis to hardware (FPGAs). This article reviews the language design from the outset, and highlights some of the earliest design decisions. We also describe how these decisions were revised recently to accommodate important requirements that arise in networking and cryptography.


ACM | 2012

Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation

Christophe Dubach; Perry Cheng; Rodric M. Rabbah; David F. Bacon; Stephen J. Fink

Languages such as OpenCL and CUDA offer a standard interface for general-purpose programming of GPUs. However, with these languages, programmers must explicitly manage numerous low-level details involving communication and synchronization. This burden makes programming GPUs difficult and error-prone, rendering these powerful devices inaccessible to most programmers. We desire a higher-level programming model that makes GPUs more accessible while also effectively exploiting their computational power. This paper presents features of Lime, a new Java-compatible language targeting heterogeneous systems, that allow an optimizing compiler to generate high quality GPU code. The key insight is that the language type system enforces isolation and immutability invariants that allow the compiler to optimize for a GPU without heroic compiler analysis. Our compiler attains GPU speedups between 75% and 140% of the performance of native OpenCL code.


Ibm Systems Journal | 2000

The Jalapeño virtual machine

Bowen Alpern; C. R. Attanasio; John J. Barton; Michael G. Burke; Perry Cheng; Jong-Deok Choi; Anthony Cocchi; Stephen J. Fink; David Grove; Michael Hind; Susan Flynn Hummel; Derek Lieber; Vassily Litvinov; Mark F. Mergen; Ton Ngo; James R. Russell; Vivek Sarkar; Mauricio J. Serrano; Janice C. Shepherd; S. E. Smith; Vugranam C. Sreedhar; Harini Srinivasan; John Whaley


Ibm Systems Journal | 2000

Implementing jalapeno in java

Bowen Alpern; C. Richard Attanasio; John J. Barton; Michael G. Burke; Perry Cheng; Jin-ho Choi; Anthony Cocchi; Stephen J. Fink; David Grove; Michael Hind; Susan Flynn Hummel; Derek Lieber; Vassily Litvinov; Mark F. Mergen; Ton Ngo; James R. Russell; Vivek Sarkar; Mauricio J. Serrano; Janice C. Shepherd; Stephen P. Smith; Vugranam C. Sreedhar; Harini Srinivasan; John Whaley


Archive | 2006

Report on the Experimental Language X10

Bob Blainey; Philippe Charles; Perry Cheng; Christopher Michael Donawa; Julian Dolby; Robert M. Fuhrer; Patrick Gallop; Christian Grothoff; Allan Kielstra; Sriram Krishnamoorthy; Nathaniel Nystrom; Filip Pizlo; Vijay A. Saraswat; Vivek Sarkar; Armando Solar-Lezama; Christoph von Praun; Jan Vitek


Ibm Systems Journal | 2000

The Jalapeo virtual machine

Bowen Alpern; C. Richard Attanasio; John J. Barton; Michael G. Burke; Perry Cheng; Jong-Deok Choi; Anthony Cocchi; Stephen J. Fink; David Grove; Michael Hind; Susan Flynn Hummel; Derek Lieber; Vassily Litvinov; Mark F. Mergen; Ton Ngo; James R. Russell; Vivek Sarkar; Mauricio J. Serrano; Janice C. Shepherd; Stephen P. Smith; Vugranam C. Sreedhar; Harini Srinivasan; John Whaley


Archive | 2013

Compiling Complex Stream Graphs to Reconfigurable Hardware in Lime

Josh Auerbach; Dave F. Bacon; Perry Cheng; Steve Fink; Rodric M. Rabbah


Archive | 2010

LIME The Liquid Metal Programming Language Language Reference Manual

Joshua S. Auerbach; David F. Bacon; Perry Cheng; Rodric M. Rabbah


Archive | 2008

IBM Research Report Staccato: A Parallel and Concurrent Real-time Compacting Garbage Collector for Multiprocessors

Bill McCloskey; David F. Bacon; Perry Cheng; David Grove

Researchain Logo
Decentralizing Knowledge