blob: 5c4d997013a9b48d75515bf233a01ea2a9430da9 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package singa;
option java_package = "org.apache.singa.proto";
// TODO(wangwei) check protobuf version to include the syntax
//syntax = "proto2";
enum DataType {
kFloat32 = 0;
kFloat16 = 1;
kInt = 2;
kChar = 3;
kDouble = 4;
kUChar = 5;
kNumDataType = 6;
}
enum LangType {
kCpp = 0;
kCuda = 1;
kOpencl = 2;
kNumDeviceType = 4;
}
enum CopyDirection {
kHostToHost = 0;
kHostToDevice = 1;
kDeviceToHost = 2;
kDeviceToDevice = 3;
kNumDirection = 4;
}
// configuration for device memory pool
message MemPoolConf {
optional string type = 1 [default = "cnmem"];
// allocation size for each device, default is 256 MB
optional uint32 init_size = 2 [default = 256];
// size limit in MB; report error/warning if this limit is reached.
// 0 for unlimited memory, i.e., use as much memory as the device has
// not used currently.
optional uint32 max_size = 3 [default = 0];
// memory manager flag for cnmem
// flag = 0: default flag
// flag = 1: prevent the manager from growing its memory consumption
// flag = 2: prevent the manager from stealing memory
optional uint32 flag = 11 [default = 0];
repeated uint32 device = 12;
}
// For tensor serialization
message TensorProto {
repeated uint32 shape = 1;
optional DataType data_type = 2;
//optional bool transpose = 3;
repeated int32 stride = 3;
repeated float float_data = 4 [packed = true];
repeated double double_data = 5 [packed = true];
repeated int32 int_data = 6 [packed = true];
repeated bytes bytes_data = 7;
}