ポート制約 - 2023.2 日本語

AI エンジン カーネルおよびグラフ プログラミング ガイド (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 日本語

ポート制約は、PortConstraints セクションで指定します。制約はポートごとにグループ化されるため、各ポートに複数の制約を指定できます。

構文

{
  "PortConstraints": {
    "<port name>": {
      <constraint>[,
      <constraint>...]
    }
  }
}
<port name> ::= string
<constraint> ::= buffers
               | colocated_nodes
               | not_colocated_nodes
               | colocated_ports
               | not_colocated_ports
               | exclusive_colocated_ports
               | colocated_reserved_memories
               | not_colocated_reserved_memories

{
  "PortConstraints": {
    "mygraph.k1.in[0]": {
      "colocated_nodes": ["mygraph.k1"]
    },
    "mygraph.k2.in[0]": {
      "colocated_nodes": ["mygraph.k2"]
    },
    "mygraph.p1": {
      "buffers": [{
        "column": 2,
        "row": 1,
        "bankId": 2
      }]
    }
  }
}

ポート名

ポートは完全修飾名 (<graph name>.<kernel name>.<port name>) で指定する必要があります。次の例では、グラフ名は myGraph、カーネル名は k1 です。カーネルには、in [0] と out [0] という 2 つのポートがあります (kernel1.cc で指定)。完全ポート名は、myGraph.k1.in[0] および myGraph.k1.out[0] となります。

class graph : public adf::graph {
private:
  adf::kernel k1;
public:
  my_graph() { 
    k1 = kernel::create(kernel1);
    source(k1) = "src/kernels/kernel1.cc";
  }
};
graph myGraph;

制約 JSON ファイルでこれらのポートを参照する場合は、この資料のさまざまな例に示すように、myGraph.k1.in[0] および myGraph.k1.out[0] という名前を使用する必要があります。