Celerity

Celerity

  • Docs
  • Contribute
  • GitHub

›Guides

Introduction

  • Getting Started
  • Installation
  • Tutorial

Guides

  • Range Mappers
  • Host Tasks
  • Reductions
  • Common Pitfalls
  • Issues & Limitations

Celerity In-Depth

  • Overview
  • Core Principles

Known Issues and Current Limitations

While Celerity can already do a lot, there still are some things it cannot do. This is usually either because of a SYCL limitation, because we are still figuring out how to fit certain functionality into the programming model, or because we simply haven't had the time yet to implement a given feature. If you are blocked by any of these or other issues, please let us know.

Here is a (potentially incomplete) list of currently known issues:

No Control Flow

In some situations, the number of Celerity tasks required for a computation may not be known fully in advance. For example, when using an iterative method, a kernel might be repeated until some error metric threshold is reached. Celerity currently offers no canonical way of incorporating such branching decisions into the data flow execution graph.

That being said, it is not impossible to achieve this behavior today. For example, the branching decision can be made within a distributed host task and then relayed into the main execution thread. The latter waits using celerity::distr_queue::slow_full_sync until a corresponding predicate has been set, and then continues submitting Celerity tasks depending on the predicate.


If you encounter any additional issues, please let us know.

← Common PitfallsOverview →
  • No Control Flow
Celerity
Docs
Getting StartedInstallationIssues & Limitations
Community
Stack OverflowCelerity Chat
More
ContributeGitHubStar
Copyright © 2022 Distributed and Parallel Systems Group, University of Innsbruck
SYCL and the SYCL logo are trademarks of the Khronos Group Inc.