[
  {
    "description": "The UUID of the run for the benchmark.",
    "mode": "REQUIRED",
    "name": "model_id",
    "type": "STRING"
  },
  {
    "description": "The name of the model, E.g ResNet50, LeNet-5 etc.",
    "mode": "REQUIRED",
    "name": "model_name",
    "type": "STRING"
  },
  {
    "description": "The date when the test of the model is started",
    "mode": "REQUIRED",
    "name": "run_date",
    "type": "TIMESTAMP"
  },
  {
    "description": "The unique name for a test by the combination of key parameters, eg batch size, num of GPU, etc. It is hardware independent.",
    "mode": "NULLABLE",
    "name": "test_id",
    "type": "STRING"
  },
  {
    "description": "The tensorflow version information.",
    "fields": [
      {
        "description": "Version of the tensorflow. E.g. 1.7.0-rc0",
        "mode": "REQUIRED",
        "name": "version",
        "type": "STRING"
      },
      {
        "description": "Git Hash of the tensorflow",
        "mode": "NULLABLE",
        "name": "git_hash",
        "type": "STRING"
      },
      {
        "description": "The channel of the tensorflow binary, eg, nightly, RC, final, custom.",
        "mode": "NULLABLE",
        "name": "channel",
        "type": "STRING"
      },
      {
        "description": "Identify anything special about the build, eg CUDA 10, NCCL, MKL, etc.",
        "mode": "NULLABLE",
        "name": "build_type",
        "type": "STRING"
      }
    ],
    "mode": "REQUIRED",
    "name": "tensorflow_version",
    "type": "RECORD"
  },
  {
    "description": "The arbitrary attribute of the model.",
    "fields": [
      {
        "description": "The name of the attribute.",
        "mode": "REQUIRED",
        "name": "name",
        "type": "STRING"
      },
      {
        "description": "The value of the attribute.",
        "mode": "NULLABLE",
        "name": "value",
        "type": "STRING"
      }
    ],
    "mode": "REPEATED",
    "name": "attribute",
    "type": "RECORD"
  },
  {
    "description": "Environment variables when the benchmark run is executed.",
    "fields": [
      {
        "description": "The name of the variable.",
        "mode": "REQUIRED",
        "name": "name",
        "type": "STRING"
      },
      {
        "description": "The value of the variable.",
        "mode": "NULLABLE",
        "name": "value",
        "type": "STRING"
      }
    ],
    "mode": "REPEATED",
    "name": "environment_variable",
    "type": "RECORD"
  },
  {
    "description": "TF Environment variables when the benchmark run is executed.",
    "fields": [
      {
        "description": "The name of the variable.",
        "mode": "REQUIRED",
        "name": "name",
        "type": "STRING"
      },
      {
        "description": "The value of the variable.",
        "mode": "NULLABLE",
        "name": "value",
        "type": "STRING"
      }
    ],
    "mode": "REPEATED",
    "name": "tensorflow_environment_variables",
    "type": "RECORD"
  },
  {
    "description": "The list of parameters run with the model. It could contain hyperparameters or others.",
    "fields": [
      {
        "description": "The name of the parameter.",
        "mode": "REQUIRED",
        "name": "name",
        "type": "STRING"
      },
      {
        "description": "The string value of the parameter.",
        "mode": "NULLABLE",
        "name": "string_value",
        "type": "STRING"
      },
      {
        "description": "The bool value of the parameter.",
        "mode": "NULLABLE",
        "name": "bool_value",
        "type": "STRING"
      },
      {
        "description": "The int/long value of the parameter.",
        "mode": "NULLABLE",
        "name": "long_value",
        "type": "INTEGER"
      },
      {
        "description": "The double/float value of parameter.",
        "mode": "NULLABLE",
        "name": "float_value",
        "type": "FLOAT"
      }
    ],
    "mode": "REPEATED",
    "name": "run_parameters",
    "type": "RECORD"
  },
  {
    "description": "The dataset that run with the benchmark.",
    "mode": "NULLABLE",
    "name": "dataset",
    "type": "RECORD",
    "fields": [
      {
        "description": "The name of the dataset that the model is trained/validated with. E.g ImageNet, mnist.",
        "mode": "REQUIRED",
        "name": "name",
        "type": "STRING"
      },
      {
        "description": "The arbitrary attribute of the dataset.",
        "fields": [
          {
            "description": "The name of the attribute.",
            "mode": "REQUIRED",
            "name": "name",
            "type": "STRING"
          },
          {
            "description": "The value of the attribute.",
            "mode": "NULLABLE",
            "name": "value",
            "type": "STRING"
          }
        ],
        "mode": "REPEATED",
        "name": "attribute",
        "type": "RECORD"
      }
    ]
  },
  {
    "description": "Used to differentiate from AWS, GCE or DGX-1 at a high level",
    "mode": "NULLABLE",
    "name": "test_environment",
    "type": "STRING"
  },
  {
    "description": "The machine configuration of the benchmark run.",
    "mode": "NULLABLE",
    "name": "machine_config",
    "type": "RECORD",
    "fields": [
      {
        "description": "The platform information of the benchmark run.",
        "mode": "NULLABLE",
        "name": "platform_info",
        "type": "RECORD",
        "fields": [
          {
            "description": "Eg: 64bit.",
            "mode": "NULLABLE",
            "name": "bits",
            "type": "STRING"
          },
          {
            "description": "Eg: ELF.",
            "mode": "NULLABLE",
            "name": "linkage",
            "type": "STRING"
          },
          {
            "description": "Eg: i386.",
            "mode": "NULLABLE",
            "name": "machine",
            "type": "STRING"
          },
          {
            "description": "Eg: 3.13.0-76-generic.",
            "mode": "NULLABLE",
            "name": "release",
            "type": "STRING"
          },
          {
            "description": "Eg: Linux.",
            "mode": "NULLABLE",
            "name": "system",
            "type": "STRING"
          },
          {
            "description": "Eg: #120-Ubuntu SMP Mon Jan 18 15:59:10 UTC 2016.",
            "mode": "NULLABLE",
            "name": "version",
            "type": "STRING"
          }
        ]
      },
      {
        "description": "The CPU information of the benchmark run.",
        "mode": "NULLABLE",
        "name": "cpu_info",
        "type": "RECORD",
        "fields": [
          {
            "mode": "NULLABLE",
            "name": "num_cores",
            "type": "INTEGER"
          },
          {
            "mode": "NULLABLE",
            "name": "num_cores_allowed",
            "type": "INTEGER"
          },
          {
            "description" : "How fast are those CPUs.",
            "mode": "NULLABLE",
            "name": "mhz_per_cpu",
            "type": "FLOAT"
          },
          {
            "description" : "Additional CPU info, Eg: Intel Ivybridge with HyperThreading (24 cores).",
            "mode": "NULLABLE",
            "name": "cpu_info",
            "type": "STRING"
          },
          {
            "description" : "What kind of cpu scaling is enabled on the host. Eg performance, ondemand, conservative, mixed.",
            "mode": "NULLABLE",
            "name": "cpu_governor",
            "type": "STRING"
          },
          {
            "description": "Cache size of the CPUs.",
            "mode": "NULLABLE",
            "name": "cache_size",
            "type": "RECORD",
            "fields": [
              {
                "mode": "NULLABLE",
                "name": "level",
                "type": "STRING"
              },
              {
                "mode": "NULLABLE",
                "name": "size",
                "type": "INTEGER"
              }
            ]
          }
        ]
      },
      {
        "mode": "NULLABLE",
        "name": "gpu_info",
        "type": "RECORD",
        "fields": [
          {
            "mode": "NULLABLE",
            "name": "count",
            "type": "INTEGER"
          },
          {
            "mode": "NULLABLE",
            "name": "model",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "cuda_version",
            "type": "STRING"
          }
        ]
      },
      {
        "description": "The cloud instance inforation if the benchmark run is executed on cloud",
        "mode": "NULLABLE",
        "name": "cloud_info",
        "type": "RECORD",
        "fields": [
          {
            "description": "The instance type, E.g. n1-standard-4.",
            "mode": "NULLABLE",
            "name": "instance_type",
            "type": "STRING"
          },
          {
            "description": "The arbitrary attribute of the cloud info.",
            "fields": [
              {
                "description": "The name of the attribute.",
                "mode": "REQUIRED",
                "name": "name",
                "type": "STRING"
              },
              {
                "description": "The value of the attribute.",
                "mode": "NULLABLE",
                "name": "value",
                "type": "STRING"
              }
            ],
            "mode": "REPEATED",
            "name": "attribute",
            "type": "RECORD"
          }
        ]
      },
      {
        "mode": "NULLABLE",
        "name": "memory_total",
        "type": "INTEGER"
      },
      {
        "mode": "NULLABLE",
        "name": "memory_available",
        "type": "STRING"
      }
    ]
  }
]
