Ebb: A DSL for Physical Simulation on CPUs and GPUs

被引:25
作者
Bernstein, Gilbert Louis [1 ]
Shah, Chinmayee [1 ]
Lemire, Crystal [1 ]
Devito, Zachary [1 ]
Fisher, Matthew [1 ]
Levis, Philip [1 ]
Hanrahan, Pat [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
来源
ACM TRANSACTIONS ON GRAPHICS | 2016年 / 35卷 / 02期
关键词
Simulation; Database Relations; Domain-Specific Languages; Programming languages; parallel programming; geometric data structures; GPU computing; local computation; PERFORMANCE; FRAMEWORK; LANGUAGE;
D O I
10.1145/2892632
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Designing programming environments for physical simulation is challenging because simulations rely on diverse algorithms and geometric domains. These challenges are compounded when we try to run efficiently on heterogeneous parallel architectures. We present Ebb, a Domain-Specific Language (DSL) for simulation, that runs efficiently on both CPUs and GPUs. Unlike previous DSLs, Ebb uses a three-layer architecture to separate (1) simulation code, (2) definition of data structures for geometric domains, and (3) runtimes supporting parallel architectures. Different geometric domains are implemented as libraries that use a common, unified, relational data model. By structuring the simulation framework in this way, programmers implementing simulations can focus on the physics and algorithms for each simulation without worrying about their implementation on parallel computers. Because the geometric domain libraries are all implemented using a common runtime based on relations, new geometric domains can be added as needed, without specifying the details of memory management, mapping to different parallel architectures, or having to expand the runtime's interface. We evaluate Ebb by comparing it to several widely used simulations, demonstrating comparable performance to handwritten GPU code where available, and surpassing existing CPU performance optimizations by up to 9x when no GPU code exists.
引用
收藏
页数:12
相关论文
共 24 条
[1]   Terra: A Multi-Stage Language for High-Performance Computing [J].
DeVito, Zachary ;
Hegarty, James ;
Aiken, Alex ;
Hanrahan, Pat ;
Vitek, Jan .
ACM SIGPLAN NOTICES, 2013, 48 (06) :105-115
[2]  
DeVito Zachary., 2011, Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC '11, p9:1
[3]  
Dubey Pradeep, 2011, ACM SIGGRAPH 2011 CO, V10
[4]  
Foley Tim, 2011, ACM SIGGRAPH 2011 SI
[5]  
GOODNIGHT N, 2007, CUDA OPENGL FLUID SI
[6]  
Hanrahan P., 1990, Computer Graphics, V24, P289, DOI 10.1145/97880.97911
[7]  
Hawkins Peter., 2011, Data representation synthesis, V46
[8]   New development in freefem++ [J].
Hecht, F. .
JOURNAL OF NUMERICAL MATHEMATICS, 2012, 20 (3-4) :251-265
[9]   Darkroom: Compiling High-Level Image Processing Code into Hardware Pipelines [J].
Hegarty, James ;
Brunhaver, John ;
DeVito, Zachary ;
Ragan-Kelley, Jonathan ;
Cohen, Noy ;
Bell, Steven ;
Vasilyev, Artem ;
Horowitz, Mark ;
Hanrahan, Pat .
ACM TRANSACTIONS ON GRAPHICS, 2014, 33 (04)
[10]   Passing a Language Through the Eye of a Needle [J].
Ierusalimschy, Roberto ;
de Figueiredo, Luiz Henrique ;
Celes, Waldemar .
COMMUNICATIONS OF THE ACM, 2011, 54 (07) :38-43