HIXL Data Structures

MemType

Specifies the memory type.

1
2
3
4
enum MemType {
  MEM_DEVICE,
  MEM_HOST
}

TransferOp

Specifies the type of the transmission operation.

1
2
3
4
enum TransferOp {
  READ,
  WRITE
}

MemDesc

Represents the memory description.

1
2
3
4
5
struct MemDesc {
  uintptr_t addr;
  size_t len;
  uint8_t reserved[128] = {};
}

TransferOpDesc

Represents the transmission operation description.

1
2
3
4
5
struct TransferOpDesc {
  uintptr_t local_addr;
  uintptr_t remote_addr;
  size_t len;
}

MemHandle

Specifies the handle of the registered memory.

1
using MemHandle = void *;

TransferArgs

Represents the optional arguments of the transmission operation. This data structure is not used currently.

1
2
3
struct TransferArgs {
  uint8_t reserved[128] = {};
}

TransferStatus

Represents the asynchronous transmission status.

1
2
3
4
5
6
enum class TransferStatus {
  WAITING,
  COMPLETED,
  TIMEOUT, // Not supported currently
  FAILED
};

NotifyDesc

Represents the notification description.

1
2
3
4
struct NotifyDesc {
  AscendString name;
  AscendString notify_msg;
}