Skip to content

Implement kernels construct #8

Open
@jdenny-ornl

Description

@jdenny-ornl

Currently, Clacc does not support the kernels construct. Its implementation will almost certainly share analyses needed for implicit worker and vector clauses and the auto clause, so issues #6 and #7 are likely prerequisites for this issue.

Tasks:

  • Investigate other OpenACC implementations (e.g., NVIDIA, GCC) to understand how their implementations of the kernels construct behave. For example, is the main point to just add acc loop auto to all contained loop nests that don't otherwise have a loop construct? Where are implicit gang clauses added in a kernels construct? What about implicit data attributes?
  • Investigate the OpenACC specification and its open issues related to the kernels construct. The spec is understood to permit a lot of flexibility here. Taking both investigations into account, file additional OpenACC spec issues and pull requests if clarity in the spec is needed.
  • If possible, implement a simple translation to standard OpenMP features that produces correct behavior.
  • Devise an OpenMP extension that represents the full semantics of the kernels construct and that can be optimized, potentially at the LLVM IR level.
  • Implement translation to OpenMP from the OpenACC kernels construct.

Metadata

Metadata

Assignees

Labels

claccRelated to the Clacc project (OpenACC support for C/C++)clangRelated to the Clang front endenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions