We will have a BOF on accelerators at GNU Tools Cauldron: Sunday July
14, 11:30am.  Below is an abstract.  If you have any comments in
advance, for example further suggestions about what to discuss at his
BOF or at Cauldron, please let me know.


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?


Torvald



Reply via email to