JP7561925B2

Special purpose neural network training chip

Abstract

This record has no abstract on file.

JP7561925B2, drawing sheet 1
Sheet 1 of 4

Term

16.8 yearsleft in the term

Expires 12 July 2043.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

20 claims: 3 independent, 17 dependent

  1. 1
    専用ハードウェアチップを使用してニューラルネットワークをトレーニングする方法であって、前記専用ハードウェアチップのベクトルプロセッサが、活性化入力の2次元行列を表すデータを受信することを含み、前記活性化入力の2次元行列は、ニューラルネットワークのそれぞれのネットワーク層に対する入力活性化行列の活性化入力の一部を含み、前記ベクトルプロセッサは、2次元構造に配置された複数のベクトル処理ユニットと、前記活性化入力の2次元行列を格納するよう構成されるベクトルレジスタとを含み、前記方法はさらに、行列乗算ユニットが、前記2次元行列について乗算結果を生成することを含み、前記生成することは、複数のクロックサイクルの各クロックサイクルにおいて、前記ベクトルプロセッサの前記ベクトルレジスタから前記専用ハードウェアチップの前記行列乗算ユニットに、前記活性化入力の2次元行列における活性化入力のそれぞれの行の少なくとも一部をロードすることと、前記複数のクロックサイクルの終了前に、前記行列乗算ユニットに重み値をロードすることとを含み、前記重み値は、前記活性化入力の2次元行列における前記活性化入力に対応する形状に配置され、前記生成することはさらに、前記行列乗算ユニットが、前記活性化入力の2次元行列および重み値を乗算して、前記乗算結果を得ることを含み、前記方法はさらに、前記乗算結果に基づいて、逆伝播を通じて前記ニューラルネットワークの重み値を更新することを含む、方法。
  2. 2
    前記行列乗算ユニットに、前記活性化入力の2次元行列における前記活性化入力のそれぞれの行の少なくとも前記一部をロードすることは、さらに、前記活性化入力のそれぞれの行の少なくとも前記一部を、第1の浮動小数点フォーマットから、前記第1の浮動小数点フォーマットよりも小さいビットサイズを有する第2の浮動小数点フォーマットに変換することを含む、請求項1に記載の方法。
  3. 3
    前記乗算結果を前記ベクトルレジスタに格納することをさらに含む、請求項1 または2 に記載の方法。
  4. 4
    前記乗算結果は2次元行列であり、前記乗算結果を格納することは、別のセットのクロックサイクルのクロックサイクルごとに、前記乗算結果の値のそれぞれの行を、前記行列乗算ユニットにおける先入れ先出しキューに一時的に格納することを含む、請求項1 ~3のいずれか に記載の方法。
  5. 5
    前記ベクトルプロセッサが、前記専用ハードウェアチップのベクトルメモリから前記活性化入力の2次元行列を表す前記データを受信することをさらに含み、前記ベクトルメモリは、高速のプライベートメモリを前記ベクトルプロセッサに提供するよう構成される、請求項1 ~4のいずれか に記載の方法。
  6. 6
    前記専用ハードウェアチップの転置ユニットが、前記活性化入力の2次元行列の転置演算を実行することをさらに含む、請求項1 ~5のいずれか に記載の方法。
  7. 7
    前記専用ハードウェアチップの削減ユニットが、前記乗算結果の数値の削減を実行することと、前記専用ハードウェアチップの置換ユニットが、前記複数のベクトル処理ユニットに格納された数値を置換することとをさらに含む、請求項1 ~6のいずれか に記載の方法。
  8. 8
    前記乗算結果を前記専用ハードウェアチップの高帯域幅メモリに格納することをさらに含む、請求項1 ~7のいずれか に記載の方法。
  9. 9
    前記専用ハードウェアチップの疎計算コアによって、予め構築されたルックアップテーブルを使用して、疎な高次元データを密な低次元データにマッピングすることをさらに含む、請求項1 ~8のいずれか に記載の方法。
  10. 10
    前記専用ハードウェアチップのチップ間相互接続を使用して、前記専用ハードウェアチップのインターフェイスまたはリソースを他の専用ハードウェアチップまたはリソースに接続することをさらに含む、請求項1 ~9のいずれか に記載の方法。
  11. 11
    前記チップ間相互接続は、前記インターフェイスおよび前記専用ハードウェアチップの高帯域幅メモリを他の専用ハードウェアチップに接続する、請求項10に記載の方法。
  12. 12
    前記インターフェイスは、ホストコンピュータへのホストインターフェイス、またはホストコンピュータのネットワークへの標準ネットワークインターフェイスである、請求項10に記載の方法。
  13. 13
    前記ベクトルレジスタは32個のベクトルレジスタを含む、請求項1 ~12のいずれか に記載の方法。
  14. 14
    前記複数のベクトル処理ユニットの各ベクトル処理ユニットは、各クロックサイクルにおいて、2つのそれぞれの算術論理ユニット(ALU)命令、それぞれのロード命令、およびそれぞれのストア命令を実行するよう構成される、請求項1 ~13のいずれか に記載の方法。
  15. 15
    前記複数のベクトル処理ユニットにおける各ベクトル処理ユニットは、各クロックサイクルにおいてそれぞれのロード命令およびストア命令を実行するためにそれぞれのオフセットメモリアドレスを演算するよう構成される、請求項14に記載の方法。
  16. 16
    前記複数のベクトル処理ユニットの前記2次元構造は、複数のレーンと、前記複数のレーンの各々のための複数のサブレーンとを備え、それぞれのベクトル処理ユニットは、前記複数のサブレーンの各々に位置し、同じレーンに位置する前記複数のベクトル処理ユニットのうちのベクトル処理ユニットは、それぞれのロード命令およびストア命令を介して互いと通信するよう構成される、請求項1 ~15のいずれか に記載の方法。
  17. 17
    1つ以上のコンピュータと1つ以上のストレージデバイスとを備えるシステムであって、前記1つ以上のストレージデバイスには、前記1つ以上のコンピュータによって実行されると前記1つ以上のコンピュータに専用ハードウェアチップを使用してニューラルネットワークをトレーニングするための動作を実行させるよう動作可能である命令が格納され、前記動作は、前記専用ハードウェアチップのベクトルプロセッサが、活性化入力の2次元行列を表すデータを受信することを含み、前記活性化入力の2次元行列は、ニューラルネットワークのそれぞれのネットワーク層に対する入力活性化行列の活性化入力の一部を含み、前記ベクトルプロセッサは、2次元構造に配置された複数のベクトル処理ユニットと、前記活性化入力の2次元行列を格納するよう構成されるベクトルレジスタとを含み、前記動作はさらに、行列乗算ユニットが、前記2次元行列について乗算結果を生成することを含み、前記生成することは、複数のクロックサイクルの各クロックサイクルにおいて、前記ベクトルプロセッサの前記ベクトルレジスタから前記専用ハードウェアチップの前記行列乗算ユニットに、前記活性化入力の2次元行列における活性化入力のそれぞれの行の少なくとも一部をロードすることと、前記複数のクロックサイクルの終了前に、前記行列乗算ユニットに重み値をロードすることとを含み、前記重み値は、前記活性化入力の2次元行列における前記活性化入力に対応する形状に配置され、前記生成することはさらに、前記行列乗算ユニットが、前記活性化入力の2次元行列および重み値を乗算して、前記乗算結果を得ることを含み、前記動作はさらに、前記乗算結果に基づいて、逆伝播を通じて前記ニューラルネットワークの重み値を更新することを含む、システム。
  18. 18
    前記行列乗算ユニットに、前記活性化入力の2次元行列における前記活性化入力のそれぞれの行の少なくとも前記一部をロードすることは、さらに、前記活性化入力のそれぞれの行の少なくとも前記一部を、第1の浮動小数点フォーマットから、第1の浮動小数点フォーマットよりも小さいビットサイズを有する第2の浮動小数点フォーマットに変換することを含む、請求項17に記載のシステム。
  19. 19
    1つ以上のコンピュータによって実行されると、前記1つ以上のコンピュータに、専用ハードウェアチップを使用してニューラルネットワークをトレーニングするための動作を実行させる命令 を含むプログラム であって、前記動作は、前記専用ハードウェアチップのベクトルプロセッサが、活性化入力の2次元行列を表すデータを受信することを含み、前記活性化入力の2次元行列は、ニューラルネットワークのそれぞれのネットワーク層に対する入力活性化行列の活性化入力の一部を含み、前記ベクトルプロセッサは、2次元構造に配置された複数のベクトル処理ユニットと、前記活性化入力の2次元行列を格納するよう構成されるベクトルレジスタとを含み、前記動作はさらに、行列乗算ユニットが、前記2次元行列について乗算結果を生成することを含み、前記生成することは、複数のクロックサイクルの各クロックサイクルにおいて、前記ベクトルプロセッサの前記ベクトルレジスタから前記専用ハードウェアチップの前記行列乗算ユニットに、前記活性化入力の2次元行列における活性化入力のそれぞれの行の少なくとも一部をロードすることと、前記複数のクロックサイクルの終了前に、前記行列乗算ユニットに重み値をロードすることとを含み、前記重み値は、前記活性化入力の2次元行列における前記活性化入力に対応する形状に配置され、前記生成することはさらに、前記行列乗算ユニットが、前記活性化入力の2次元行列および重み値を乗算して、前記乗算結果を得ることを含み、前記動作はさらに、前記乗算結果に基づいて、逆伝播を通じて前記ニューラルネットワークの重み値を更新することを含む、 プログラム 。
  20. 20
    前記行列乗算ユニットに、前記活性化入力の2次元行列における前記活性化入力のそれぞれの行の少なくとも前記一部をロードすることは、さらに、前記活性化入力のそれぞれの行の少なくとも前記一部を、第1の浮動小数点フォーマットから、前記第1の浮動小数点フォーマットよりも小さいビットサイズを有する第2の浮動小数点フォーマットに変換することを含む、請求項19に記載の プログラム 。
Independent claims20