CA

Loading...

Cauldron 2013 - Accelerator BOF

431 views

Loading...

Loading...

Transcript

The interactive transcript could not be loaded.

Loading...

Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jul 24, 2013

Presenter: Torvald Riegel

Abstract:
In this BOF, we will discuss how we can support accelerators (e.g.,
GPGPUs) in GCC. This is a rather wide problem and raises questions
ranging from which programming abstractions to support (e.g., OpenMP 4.0
accelerator extensions, OpenACC, and others) to which accelerator
(virtual) ISAs to support -- and everything in between. Therefore, the
primary goal of this BOF is to start the discussion about how to
approach this problem and which initial steps we might take.
Possible sub-topics for discussion include:
* Front-end issues: Which programming abstractions for parallelization
on accelerators at the programming-language level do we target first?
OpenMP 4.0 will include accelerator abstractions; OpenACC has similar
features. Are there features that are shared across several
programming abstractions (e.g., ways to put constraints on regions of
code so that it can indeed be executed on a particular accelerator)?
* Which infrastructure do we need in the middle-end to support different
language-level abstractions without a lot of duplicated code? Which
GCC-internal abstractions do we need? Can we have a single shared
internal representation of accelerator code? How do we deal with
issues such as heterogeneous accelerator hardware or separate address
spaces on accelerators? How do we represent communication between
hosts and accelerators? Is the current SIMD support sufficient for
accelerator code too?
* Back-end questions: Which (virtual) architectures do we want to target
first? Should we target low-level programming abstractions such as
OpenCL, too? Which additional runtimes do we want to -- or need to --
bind to? Can/should we target existing runtimes, or do we need to
build our own (glue) layers?
* Testing: Do we need anything special to test all of this?
* Other GNU tools: What do we need to do in other tools such as GDB?

Loading...

to add this to Watch Later

Add to

Loading playlists...