1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
syntax = "proto3";
package openmp.libomptarget.remote;
option cc_enable_arenas = true;
service RemoteOffload {
rpc Shutdown(Null) returns (I32) {}
rpc RegisterLib(TargetBinaryDescription) returns (I32) {}
rpc UnregisterLib(Pointer) returns (I32) {}
rpc IsValidBinary(TargetDeviceImagePtr) returns (I32) {}
rpc GetNumberOfDevices(Null) returns (I32) {}
rpc InitDevice(I32) returns (I32) {}
rpc InitRequires(I64) returns (I32) {}
rpc LoadBinary(Binary) returns (TargetTable) {}
rpc DataAlloc(AllocData) returns (Pointer) {}
rpc DataDelete(DeleteData) returns (I32) {}
rpc DataSubmit(stream SubmitData) returns (I32) {}
rpc DataRetrieve(RetrieveData) returns (stream Data) {}
rpc IsDataExchangeable(DevicePair) returns (I32) {}
rpc DataExchange(ExchangeData) returns (I32) {}
rpc RunTargetRegion(TargetRegion) returns (I32) {}
rpc RunTargetTeamRegion(TargetTeamRegion) returns (I32) {}
}
message Null {}
message Pointer { uint64 number = 1; }
message I32 { int32 number = 1; }
message I64 { int64 number = 1; }
message DevicePair {
int32 src_dev_id = 1;
int32 dst_dev_id = 2;
}
message Binary {
uint64 image_ptr = 1;
int32 device_id = 2;
}
message TargetOffloadEntry {
bytes data = 1;
string name = 2;
int32 flags = 3;
int32 reserved = 4;
}
message DeviceOffloadEntry {
string name = 1;
uint64 addr = 2;
int32 flags = 3;
int32 reserved = 4;
int32 size = 5;
}
message TargetTable {
repeated DeviceOffloadEntry entries = 1;
repeated uint64 entry_ptrs = 2;
}
message TargetDeviceImagePtr {
uint64 image_ptr = 1;
repeated uint64 entry_ptrs = 2;
}
message TargetDeviceImage {
bytes binary = 1;
repeated TargetOffloadEntry entries = 2;
}
message ImagePtrs {
uint64 img_ptr = 1;
repeated uint64 entry_ptrs = 2;
}
message TargetBinaryDescription {
repeated ImagePtrs image_ptrs = 1;
repeated TargetOffloadEntry entries = 2;
repeated TargetDeviceImage images = 3;
repeated uint64 entry_ptrs = 4;
uint64 bin_ptr = 5;
}
message AllocData {
uint64 size = 1;
uint64 hst_ptr = 2;
int32 device_id = 3;
}
message SubmitData {
bytes data = 1;
uint64 hst_ptr = 2;
uint64 tgt_ptr = 3;
uint64 start = 5;
uint64 size = 6;
int32 device_id = 7;
}
message RetrieveData {
uint64 hst_ptr = 1;
uint64 tgt_ptr = 2;
uint64 size = 3;
int32 device_id = 5;
}
message Data {
bytes data = 1;
uint64 start = 2;
uint64 size = 3;
int32 ret = 4;
}
message ExchangeData {
uint64 src_dev_id = 1;
uint64 src_ptr = 2;
uint64 dst_dev_id = 3;
uint64 dst_ptr = 4;
uint64 size = 6;
}
message DeleteData {
uint64 tgt_ptr = 1;
int32 device_id = 2;
}
message TargetRegion {
repeated uint64 tgt_args = 1;
repeated int64 tgt_offsets = 2;
uint64 tgt_entry_ptr = 3;
int32 device_id = 4;
int32 arg_num = 5;
}
message TargetTeamRegion {
repeated uint64 tgt_args = 1;
repeated int64 tgt_offsets = 2;
uint64 tgt_entry_ptr = 3;
uint64 loop_tripcount = 4;
int32 device_id = 5;
int32 arg_num = 6;
int32 team_num = 7;
int32 thread_limit = 8;
}
|