• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1syntax = "proto3";
2
3package tensorflow;
4option cc_enable_arenas = true;
5option java_outer_classname = "KernelDefProtos";
6option java_multiple_files = true;
7option java_package = "org.tensorflow.framework";
8option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/framework";
9import "tensorflow/core/framework/attr_value.proto";
10
11message KernelDef {
12  // Must match the name of an Op.
13  string op = 1;
14
15  // Type of device this kernel runs on.
16  string device_type = 2;
17
18  message AttrConstraint {
19    // Name of an attr from the Op.
20    string name = 1;
21
22    // A list of values that this kernel supports for this attr.
23    // Like OpDef.AttrDef.allowed_values, except for kernels instead of Ops.
24    AttrValue allowed_values = 2;
25  }
26  repeated AttrConstraint constraint = 3;
27
28  // Names of the Op's input_/output_args that reside in host memory
29  // instead of device memory.
30  repeated string host_memory_arg = 4;
31
32  // This allows experimental kernels to be registered for an op that
33  // won't be used unless the user specifies a "_kernel" attr with
34  // value matching this.
35  string label = 5;
36
37  // Prioritization of kernel amongst different devices. By default we assume
38  // priority is 0. The higher the priority the better. By default (i.e. if
39  // this is not set), we prefer GPU kernels over CPU.
40  int32 priority = 6;
41}
42
43// A collection of KernelDefs
44message KernelList {
45  repeated KernelDef kernel = 1;
46};
47