Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3242947.3242951acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
short-paper

Extending SHAPES for SIMD Architectures: An approach to native support for Struct of Arrays in languages

Published: 17 July 2018 Publication History

Abstract

SIMD (Single Instruction, Multiple Data) instruction sets are ubiquitous on modern hardware, but rarely used in software projects. A major reason for this is that efficient SIMD code requires data to be laid out in memory in an unconventional manner, forcing developers to explicitly refactor their code and data structures in order to make use of SIMD.
In previous work, we proposed SHAPES, an abstract layout specification for enabling memory optimisations for managed, object-oriented languages. In this paper, we explain how, by extending SHAPES with well-known constructs from the literature, which are not specific to SIMD, we can extend SHAPES to compile programs to use SIMD instructions.
The resulting language (sketch) seems able to exploit SIMD capabilities without sacrificing ease of development.

References

[1]
Franco, Juliana, et al. "You Can Have it All: Abstraction and Good Cache Performance." Proceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. ACM, 2017.
[2]
Pharr, Matt, and William R. Mark. "ISPC: A SPMD Compiler for High-Performance CPU Programming." Innovative Parallel Computing (InPar), 2012. IEEE, 2012.
[3]
Rodriguez, Jose. A Jai Primer. URL: https://github.com/BSVino/JaiPrimer/blob/fc9ff9e722c190eeabe33a78d50d2588ae6b7e49/JaiPrimer. md Accessed: 2018-05-18.
[4]
Leißa, Roland, Immanuel Haffner, and Sebastian Hack. "Sierra: a SIMD Extension for C++." Proceedings of the 2014 Workshop on Programming models for SIMD/Vector processing. ACM, 2014.
[5]
Kornblith, Simon. Julia Structs of Arrays. URL: https://github.com/simonster/StructsOfArrays.jl/blob/v0.0.3/src/StructsOfArrays.jl Accessed: 2018-05-18.
[6]
Fog, Agner. "The Microarchitecture of Intel, AMD and VIA CPUs: An Optimization Guide for Assembly Programmers and Compiler Makers." Copenhagen University College of Engineering (2012): 02--29.
[7]
Van Waveren, J. M. P. "From Quaternion to Matrix and Back." Id Software, Inc (2005).
[8]
Henry, David. "MD5Mesh and MD5Anim Files Formats." URL: http://tfc.duke.free.fr/coding/md5-specs-en.html. Accessed: 2018-05-18.
[9]
John Hogg. Islands: Aliasing Protection in Object-oriented Languages." SIGPLAN Not. 26(11):271--285. 1991.
[10]
John Boyland. "Alias burying: Unique variables without destructive reads." Software: Practice and Experience, 31(6):533--553. 2001.
[11]
Mattis, Toni, Johannes Henning, Patrick Rein, Robert Hirschfeld, and Malte Appeltauer. "Columnar objects: Improving the performance of analytical applications." In 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), pp. 197--210. ACM, 2015.

Cited By

View all
  • (2024)Encore: CodaActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_3(59-91)Online publication date: 29-Jan-2024
  • (2020)Reshape your layouts, not your programs: A safe language extension for better cache localityScience of Computer Programming10.1016/j.scico.2020.102481(102481)Online publication date: May-2020

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICOOOLPS '18: Proceedings of the 13th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
July 2018
43 pages
ISBN:9781450358040
DOI:10.1145/3242947
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

  • AITO: Assoc Internationale por les Technologies Objects

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 July 2018

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Short-paper
  • Research
  • Refereed limited

Conference

ECOOP '18

Acceptance Rates

ICOOOLPS '18 Paper Acceptance Rate 5 of 6 submissions, 83%;
Overall Acceptance Rate 11 of 14 submissions, 79%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Encore: CodaActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_3(59-91)Online publication date: 29-Jan-2024
  • (2020)Reshape your layouts, not your programs: A safe language extension for better cache localityScience of Computer Programming10.1016/j.scico.2020.102481(102481)Online publication date: May-2020

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media