spcl / spcl/dace

SMI Integration

Open
#83 0 comments 0 reactions 1 assignee Claimed by @TizianoDeMatteis View on GitHub
core
Dominant language
Python
Stars
593
Forks
163
Avg merge
2d 23h
Merged PRs (30d)
60

Description

Integration of a minimal set of SMI functionalities (p2p communications for the moment being).

### Possible solution

Introduce the concept of remote streams

### Technical details

If SMI should be used or not, is determined at codegeneration by looking at if remote streams are used

#### CMake Integration

The use of SMI is detected in the code-generation phase. In this case, proper Make targets are created for favoring compilation/emulation of SMI based programs.

This requires to define a topology file (that contains the mapping program <-> rank) for the sake of emulation. In this first implementation, this is not so meaningful but will be required for full SMI integration

#### Codegen object

Defined a target_name field, which can be set when returning a codegenobject and we want to have the field initialized

#### Generated code

For the sake of enabling an easy emulation toolchain, the host generated code will assume the presence of the following attributes:
- `smi_rank`: current rank (int)
- `smi_num_ranks`: total number of ranks (int)
- `smi_device`: device used (int, useful for running on Noctua)

These must be defined by specializing the SDFG.

*TODO*: this must be cleaned

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.