Skip to content

Add Engine abstraction to enable multiple backends - #26

Open
ryanorendorff wants to merge 1 commit into
CAPS-UMU:mainfrom
ryanorendorff:engine-abstraction
Open

Add Engine abstraction to enable multiple backends#26
ryanorendorff wants to merge 1 commit into
CAPS-UMU:mainfrom
ryanorendorff:engine-abstraction

Conversation

@ryanorendorff

Copy link
Copy Markdown
Contributor

This PR introduces the Engine abstract class, which allows for separating out the host side computation from the specific backend used to accelerate certain computations. This should enable

  • Building with just the CPU to test out that the API works as expected but
  • Introducing new backends like Metal
  • A distinction between what is host code versus CPU/Engine code.

This PR moves code around, it does not introduce new algorithmic code.

This PR introduces the `Engine` abstract class, which allows for separating out the host side computation from the specific backend used to accelerate certain computations. This should enable

- Building with just the CPU to test out that the API works as expected but
- Introducing new backends like Metal
- Distinction of what is host side computation versus what is engine specific.
@oscarveral

Copy link
Copy Markdown
Collaborator

Hi! I've been looking at this for some time and I agree is a good idea to include some sort of backend abstraction. I am in the process of refining this, as we think it could be more appropiate to have this kind of abstraction at a lower level inside FIDESlib, so other compute backends such as Metal as you mentioned can be more easily implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants