特開2019-117628(P2019-117628A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特開2019-117628高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ
<>
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000005
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000006
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000007
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000008
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000009
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000010
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000011
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000012
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000013
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000014
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000015
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000016
  • 特開2019117628-高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-117628(P2019-117628A)
(43)【公開日】2019年7月18日
(54)【発明の名称】高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイ
(51)【国際特許分類】
   G06F 7/487 20060101AFI20190627BHJP
   G06F 9/38 20060101ALI20190627BHJP
   G06F 17/10 20060101ALI20190627BHJP
【FI】
   G06F7/487
   G06F9/38 370C
   G06F17/10 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【全頁数】20
(21)【出願番号】特願2018-229543(P2018-229543)
(22)【出願日】2018年12月7日
(31)【優先権主張番号】62/610,439
(32)【優先日】2017年12月26日
(33)【優先権主張国】US
(31)【優先権主張番号】15/913,758
(32)【優先日】2018年3月6日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】グ,ポン
(72)【発明者】
【氏名】マラディ,クリシュナ ティー.
(72)【発明者】
【氏名】チョン 宏 忠
【テーマコード(参考)】
5B013
5B056
【Fターム(参考)】
5B013DD03
5B056BB26
(57)【要約】
【課題】高速且つ高効率のコンボリューション演算を行う高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイを提供する。
【解決手段】本発明による方法は、高帯域幅メモリーシステムにおけるメモリールックアップメカニズムのための方法であって、メモリーダイを使用して、メモリーダイに格納された浮動小数点演算結果を含むルックアップテーブルにアクセスすることにより、ルックアップテーブル方法を用いた乗算演算を遂行するステップと、メモリーダイにより、乗算演算の結果を、プロセッサ及びバッファーを含むロジックダイに伝送するステップと、ロジックダイにより、演算ユニットを用いた行列乗算演算を遂行するステップと、を有する。
【選択図】図1A
【特許請求の範囲】
【請求項1】
高帯域幅メモリーシステムにおけるメモリールックアップメカニズムのための方法であって、
メモリーダイを使用して、前記メモリーダイに格納された浮動小数点演算結果を含むルックアップテーブル(LUT)にアクセスすることにより、ルックアップテーブル方法(LUT methodology)を用いた乗算演算を遂行するステップと、
前記メモリーダイにより、前記乗算演算の結果を、プロセッサ及びバッファーを含むロジックダイに伝送するステップと、
前記ロジックダイにより、演算ユニットを用いた行列乗算演算を遂行するステップと、を有することを特徴とする方法。
【請求項2】
前記ルックアップテーブル方法は、浮動小数点フルプロダクト乗算(full product multiplication)方法を含み、
前記浮動小数点フルプロダクト乗算方法は、
前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)するステップと、
前記メモリーダイにより、前記ルックアップテーブルから前記バッファーに前記ホールスカラー乗算結果を伝送するステップと、
前記バッファーにより、前記ホールスカラー乗算結果を前記ロジックダイのアキュムレータ(accumulator)に伝送するステップと、
前記アキュムレータにより、前記ホールスカラー乗算結果を累積するステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記ルックアップテーブル方法は、浮動小数点部分プロダクト乗算(partial product multiplication)方法を含み、
前記浮動小数点部分プロダクト乗算方法は、
前記メモリーダイにより、フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索するステップと、
前記メモリーダイにより、前記部分プロダクト乗算結果を前記バッファーに伝送するステップと、
前記バッファーにより、前記部分プロダクト乗算結果を前記ロジックダイのアジャスター(adjustor)に伝送するステップと、
前記アジャスターにより、前記部分プロダクト乗算結果を前記ロジックダイのアキュムレータ(accumulator)に伝送するステップと、
前記アキュムレータにより、前記部分プロダクト乗算結果を累積するステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記ルックアップテーブル方法は、浮動小数点テンソル演算(tensor operation)方法を含み、
前記浮動小数点テンソル演算方法は、
前記メモリーダイにより、テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索するステップと、
前記メモリーダイにより、前記テンソル乗算結果を前記バッファーに伝送するステップと、
前記バッファーにより、前記テンソル乗算結果を前記ロジックダイのテンソルポストプロセッサ(tensor−post processor)に伝送するステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記ルックアップテーブル方法は、浮動小数点フューズドレイヤー動作(fused layer operation)方法を含み、
前記浮動小数点フューズドレイヤー動作方法は、
前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索するステップと、
前記メモリーダイにより、前記ロジックダイのバッファーから分離された複数のバッファーを含むバッファーダイ(buffer die)に前記ホールプロダクト乗算結果を伝送するステップと、
前記バッファーダイにより、前記ホールプロダクト乗算結果を前記ロジックダイのバッファーに伝送するステップと、
前記ロジックダイのバッファーにより、前記ホールプロダクト乗算結果を前記ロジックダイのテンソルプロセッサに伝送するステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項6】
第1タイプの動作に関連する前記ルックアップテーブルを前記メモリーダイに格納するステップと、
前記第1タイプの動作とは異なる第2タイプの動作に関連する前記ルックアップテーブルを前記メモリーダイに格納するステップと、をさらに含むことを特徴とする請求項1に記載の方法。
【請求項7】
第1階層の入力フィーチャーマップ(feature map)内の全ての可能な位置を読み取るステップと、
第1階層のカーネルと、前記第1階層の入力フィーチャーマップとをコンボルービング(convolving)するステップと、
前記コンボルービングに基づいて第2階層の入力フィーチャーマップの結果を生成するステップと、をさらに含むことを特徴とする請求項1に記載の方法。
【請求項8】
高帯域幅メモリールックアップメカニズムシステムであって、
演算ユニットを用いた行列乗算演算を遂行するプロセッサ及びバッファーを含むロジックダイと、
浮動小数点演算結果を含むルックアップテーブル(LUT)を含むメモリーダイと、を備えることを特徴とするシステム。
【請求項9】
前記メモリーダイは、
前記ルックアップテーブルにアクセスし、
ルックアップテーブル方法(LUT methodology)を用いた乗算演算を遂行し、
前記乗算演算の結果を前記ロジックダイに伝送することを特徴とする請求項8に記載のシステム。
【請求項10】
前記メモリーダイは、
ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)し、
前記ルックアップテーブルから前記バッファーに前記ホールスカラー乗算結果を伝送することを特徴とする請求項9に記載のシステム。
【請求項11】
前記ロジックダイは、アキュムレータ(accumulator)をさらに含み、
前記アキュムレータは、
前記バッファーから前記ホールスカラー乗算結果を受信し、
前記ホールスカラー乗算結果を累積することを特徴とする請求項10に記載のシステム。
【請求項12】
前記メモリーダイは、
フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算(partial product multiplication)結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索し、
前記部分プロダクト乗算結果を前記バッファーに伝送することを特徴とする請求項9に記載のシステム。
【請求項13】
前記ロジックダイは、
前記バッファーから前記部分プロダクト乗算結果を受信するアジャスター(adjustor)と、
前記アジャスターから前記部分プロダクト乗算結果を受信して前記部分プロダクト乗算結果を累算するアキュムレータと、をさらに含むことを特徴とする請求項12に記載のシステム。
【請求項14】
前記メモリーダイは、
テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索し、
前記テンソル乗算結果を前記バッファーに伝送することを特徴とする請求項9に記載のシステム。
【請求項15】
前記ロジックダイは、前記バッファーから前記テンソル乗算結果を受信するテンソルポストプロセッサ(tensor−post processor)をさらに含むことを特徴とする請求項14に記載のシステム。
【請求項16】
前記メモリーダイは、
ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索し、
前記ホールプロダクト乗算結果をバッファーダイに伝送することを特徴とする請求項9に記載のシステム。
【請求項17】
前記ロジックダイは、前記バッファーダイから前記ホールプロダクト乗算結果を受信するテンソルプロセッサをさらに含むことを特徴とする請求項16に記載のシステム。
【請求項18】
前記ロジックダイは、アクセラレーターダイをさらに含むことを特徴とする請求項8に記載のシステム。
【請求項19】
前記メモリーダイは、ダイナミックランダムアクセスメモリ(DRAM)ダイを含むことを特徴とする請求項8に記載のシステム。
【請求項20】
格納されたルックアップテーブル(LUT)を含むメモリーダイであって、
前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)し、前記メモリーダイにより、前記ホールスカラー乗算結果をバッファーに伝送し、前記バッファーにより、前記ホールスカラー乗算結果をアキュムレータ(accumulator)に伝送し、前記アキュムレータにより、前記ホールスカラー乗算結果を累積する浮動小数点フルプロダクト乗算方法と、
前記メモリーダイにより、フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索し、前記メモリーダイにより、前記部分プロダクト乗算結果をバッファーに伝送し、前記バッファーにより、前記部分プロダクト乗算結果をアジャスター(adjustor)に伝送し、前記アジャスターにより、前記部分プロダクト乗算結果をアキュムレータに伝送し、前記アキュムレータにより、前記部分プロダクト乗算結果を累積する浮動小数点部分プロダクト乗算方法と、
前記メモリーダイにより、テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索し、前記メモリーダイにより、前記テンソル乗算結果をバッファーに伝送し、前記バッファーにより、前記テンソル乗算結果をテンソルポストプロセッサに伝送する浮動小数点テンソル演算方法と、
前記メモリーダイにより、ホールスカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索し、前記メモリーダイにより、複数のバッファーを含むバッファーダイに前記ホールプロダクト乗算結果を伝送し、前記バッファーダイにより、前記ホールプロダクト乗算結果を前記バッファーに伝送し、前記バッファーにより、前記ホールプロダクト乗算結果をテンソルプロセッサに伝送する浮動小数点フューズドレイヤー(fused layer)動作方法と、を遂行するように構成されることを特徴とするメモリーダイ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイに関する。
【背景技術】
【0002】
ディープニューラルネットワーク(deep neural network)などの新興アプリケーション(emerging application)は、異なるデータセットで訓練し、高い精度で学習するために、大量の計算及びメモリー能力を使用する。加えて、高性能コンピューティング(HPC:High Performance Computing)グラフィックアルゴリズムのようなアプリケーションが演算集約的に処理されるようになるにつれて、エネルギー効率と短い待ち時間が次第に重要になっている。
【0003】
その結果、重みと中間結果を格納するためのメモリー、並びに基本線型代数サブプログラム(BLAS:Basic Linear Algebra Subprogram)及び行列間乗算(GEMM:General Matrix to Matrix Multiplication)カーネルのアクセラレーションに主に使用される計算のためのメモリー及び演算リソースに対する需要が大幅に増加する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7710972号明細書
【特許文献2】米国特許第8943119号明細書
【特許文献3】米国特許第9195784号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、高帯域幅メモリーシステムにおけるメモリールックアップメカニズムシステム及びそのための方法並びにルックアップテーブルを含むメモリーダイを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するためになされた本発明の一態様による方法は、高帯域幅メモリーシステムにおけるメモリールックアップメカニズムのための方法であって、メモリーダイを使用して、前記メモリーダイに格納された浮動小数点演算結果を含むルックアップテーブル(LUT)にアクセスすることにより、ルックアップテーブル方法(LUT methodology)を用いた乗算演算を遂行するステップと、前記メモリーダイにより、前記乗算演算の結果を、プロセッサ及びバッファーを含むロジックダイに伝送するステップと、前記ロジックダイにより、演算ユニットを用いた行列乗算演算を遂行するステップと、を有することを特徴とする。
【0007】
前記ルックアップテーブル方法は、浮動小数点フルプロダクト乗算(full product multiplication)方法を含み、前記浮動小数点フルプロダクト乗算方法は、前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)するステップと、前記メモリーダイにより、前記ルックアップテーブルから前記バッファーに前記ホールスカラー乗算結果を伝送するステップと、前記バッファーにより、前記ホールスカラー乗算結果を前記ロジックダイのアキュムレータ(accumulator)に伝送するステップと、前記アキュムレータにより、前記ホールスカラー乗算結果を累積するステップと、を含み得る。
【0008】
前記ルックアップテーブル方法は、浮動小数点部分プロダクト乗算(partial product multiplication)方法を含み、前記浮動小数点部分プロダクト乗算方法は、前記メモリーダイにより、フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索するステップと、前記メモリーダイにより、前記部分プロダクト乗算結果を前記バッファーに伝送するステップと、前記バッファーにより、前記部分プロダクト乗算結果を前記ロジックダイのアジャスター(adjustor)に伝送するステップと、前記アジャスターにより、前記部分プロダクト乗算結果を前記ロジックダイのアキュムレータ(accumulator)に伝送するステップと、前記アキュムレータにより、前記部分プロダクト乗算結果を累積するステップと、を含み得る。
【0009】
前記ルックアップテーブル方法は、浮動小数点テンソル演算(tensor operation)方法を含み、前記浮動小数点テンソル演算方法は、前記メモリーダイにより、テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索するステップと、前記メモリーダイにより、前記テンソル乗算結果を前記バッファーに伝送するステップと、前記バッファーにより、前記テンソル乗算結果を前記ロジックダイのテンソルポストプロセッサ(tensor−post processor)に伝送するステップと、を含み得る。
【0010】
前記ルックアップテーブル方法は、浮動小数点フューズドレイヤー動作(fused layer operation)方法を含み、前記浮動小数点フューズドレイヤー動作方法は、前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索するステップと、前記メモリーダイにより、前記ロジックダイのバッファーから分離された複数のバッファーを含むバッファーダイ(buffer die)に前記ホールプロダクト乗算結果を伝送するステップと、前記バッファーダイにより、前記ホールプロダクト乗算結果を前記ロジックダイのバッファーに伝送するステップと、前記ロジックダイのバッファーにより、前記ホールプロダクト乗算結果を前記ロジックダイのテンソルプロセッサに伝送するステップと、を含み得る。
【0011】
第1タイプの動作に関連する前記ルックアップテーブルを前記メモリーダイに格納するステップと、前記第1タイプの動作とは異なる第2タイプの動作に関連する前記ルックアップテーブルを前記メモリーダイに格納するステップと、をさらに含み得る。
【0012】
第1階層の入力フィーチャーマップ(feature map)内の全ての可能な位置を読み取るステップと、第1階層のカーネルと、前記第1階層の入力フィーチャーマップとをコンボルービング(convolving)するステップと、前記コンボルービングに基づいて第2階層の入力フィーチャーマップの結果を生成するステップと、をさらに含み得る。
【0013】
上記目的を達成するためになされた本発明の一態様によるシステムは、高帯域幅メモリールックアップメカニズムシステムであって、演算ユニットを用いた行列乗算演算を遂行するプロセッサ及びバッファーを含むロジックダイと、浮動小数点演算結果を含むルックアップテーブル(LUT)を含むメモリーダイと、を備えることを特徴とする。
【0014】
前記メモリーダイは、前記ルックアップテーブルにアクセスし、ルックアップテーブル方法(LUT methodology)を用いた乗算演算を遂行し、前記乗算演算の結果を前記ロジックダイに伝送し得る。
【0015】
前記メモリーダイは、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)し、前記ルックアップテーブルから前記バッファーに前記ホールスカラー乗算結果を伝送し得る。
【0016】
前記ロジックダイは、アキュムレータ(accumulator)をさらに含み、前記アキュムレータは、前記バッファーから前記ホールスカラー乗算結果を受信し、前記ホールスカラー乗算結果を累積し得る。
【0017】
前記メモリーダイは、フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算(partial product multiplication)結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索し、前記部分プロダクト乗算結果を前記バッファーに伝送し得る。
【0018】
前記ロジックダイは、前記バッファーから前記部分プロダクト乗算結果を受信するアジャスター(adjustor)と、前記アジャスターから前記部分プロダクト乗算結果を受信して前記部分プロダクト乗算結果を累算するアキュムレータと、をさらに含み得る。
【0019】
前記メモリーダイは、テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索し、前記テンソル乗算結果を前記バッファーに伝送し得る。
【0020】
前記ロジックダイは、前記バッファーから前記テンソル乗算結果を受信するテンソルポストプロセッサ(tensor−post processor)をさらに含み得る。
【0021】
前記メモリーダイは、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索し、前記ホールプロダクト乗算結果をバッファーダイに伝送し得る。
【0022】
前記ロジックダイは、前記バッファーダイから前記ホールプロダクト乗算結果を受信するテンソルプロセッサをさらに含み得る。
【0023】
前記ロジックダイは、アクセラレーターダイをさらに含み得る。
【0024】
前記メモリーダイは、ダイナミックランダムアクセスメモリ(DRAM)ダイを含み得る。
【0025】
上記目的を達成するためになされた本発明の一態様によるメモリーダイは、格納されたルックアップテーブル(LUT)を含むメモリーダイであって、前記メモリーダイにより、ホール(whole)スカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索(retrieve)し、前記メモリーダイにより、前記ホールスカラー乗算結果をバッファーに伝送し、前記バッファーにより、前記ホールスカラー乗算結果をアキュムレータ(accumulator)に伝送し、前記アキュムレータにより、前記ホールスカラー乗算結果を累積する浮動小数点フルプロダクト乗算方法と、前記メモリーダイにより、フラクション(fraction)スカラー浮動小数点入力を使用して、部分プロダクト乗算結果を含む前記ルックアップテーブルから前記部分プロダクト乗算結果を検索し、前記メモリーダイにより、前記部分プロダクト乗算結果を前記バッファーに伝送し、前記バッファーにより、前記部分プロダクト乗算結果をアジャスター(adjustor)に伝送し、前記アジャスターにより、前記部分プロダクト乗算結果をアキュムレータに伝送し、前記アキュムレータにより、前記部分プロダクト乗算結果を累積する浮動小数点部分プロダクト乗算方法と、前記メモリーダイにより、テンソル浮動小数点入力を使用して、テンソル乗算結果を含む前記ルックアップテーブルから前記テンソル乗算結果を検索し、前記メモリーダイにより、前記テンソル乗算結果を前記バッファーに伝送し、前記バッファーにより、前記テンソル乗算結果をテンソルポストプロセッサに伝送する浮動小数点テンソル演算方法と、前記メモリーダイにより、ホールスカラー浮動小数点入力を使用して、ホールプロダクト乗算結果を含む前記ルックアップテーブルからホールスカラー乗算結果を検索し、前記メモリーダイにより、複数のバッファーを含むバッファーダイに前記ホールプロダクト乗算結果を伝送し、前記バッファーダイにより、前記ホールプロダクト乗算結果を前記バッファーに伝送し、前記バッファーにより、前記ホールプロダクト乗算結果をテンソルプロセッサに伝送する浮動小数点フューズドレイヤー(fused layer)動作方法と、を遂行するように構成されることを特徴とする。
【発明の効果】
【0026】
本発明によれば、高帯域幅メモリーシステムで高速且つ高効率のコンボリューション演算をサポートするためのメモリールックアップメカニズムを提供することができる。
【図面の簡単な説明】
【0027】
図1A】本発明の一実施形態による第2世代(second generation)高帯域幅メモリー(HBM2)システムの構成を示す平面図である。
図1B】本発明の一実施形態による第2世代高帯域幅メモリー(HBM2)システムの構成を示す側面図である。
図2A】本発明の一実施形態による設計オプションを示すブロック図である。
図2B】本発明の一実施形態による設計オプションを示すブロック図である。
図2C】本発明の一実施形態による設計オプションを示すブロック図である。
図2D】本発明の一実施形態による設計オプションを示すブロック図である。
図3】メモリールックアップテーブル(LUT)がスカラーベクトル(scalar−vector)乗算を遂行する方法を示す概略図である。
図4】浮動小数点の指数(exponent)、フラクション(fraction)、又は符号(sign)のような浮動小数点の異なる成分を示す概略図である。
図5】LUTの冗長(redundant)セクションを示すブロックと、行インデックス、列インデックス、及び結果サイズによって使用されるビット数を表示するテーブルとを示す図である。
図6】LUTを「フォールディング(folding)」することによってメモリー空間を節約するアルゴリズムの視覚的表現を示す図である。
図7】LUTを示すブロック図と、部分プロダクト乗算結果だけを格納するLUTの行インデックス、列インデックス、及び結果サイズによって使用されるビット数を表示するテーブルとを示す図である。
図8】フラクション部分プロダクトの結果を含むLUTを示すブロック図である。
図9】階層間(layer−by−layer)コンボリューション演算の視覚的な表現を示す図である。
【発明を実施するための形態】
【0028】
本発明の特徴及びそれを達成する方法は、本発明の実施形態の詳細な説明及び図面を参照して明確にされる。以下、例示的な実施形態を、同じ参照符号は同じ構成要素を示す図面を参照して詳細に説明する。しかし、本発明は多様な形態で具現可能であり、本明細書に例示した実施形態に限定されるものではない。むしろ、これらの実施形態は、本発明の開示が完全になるための例として提供され、当業者に本発明の特徴及び機能を完全に伝えるためのものである。したがって、本発明の技術分野における通常の知識を有する者が本発明の特徴及び機能を完全に理解するために必要でないプロセス、要素、及び技術は説明しない。特に記載しない限り、同じ参照符号は、図面及び明細書の説明において、同じ構成要素を示し、従ってそれに対する説明は繰り返さない。図面において、構成要素、層、及び領域の相対的な大きさは、明確化のために誇張される。
【0029】
以下、説明を目的に、多様な特定の実施形態が、多様な実施形態の完全な理解を提供するために記載される。しかし、多様な実施形態が、このような特定の詳細なしに、又は1つ以上の等価な構成なしに実施され得ることは自明である。他の例で、多様な実施形態を不必要に曖昧にすることを避けるために、公知の構造及びデバイスはブロック図の形式で示される。
【0030】
要素、層、領域、又は成分が、他の要素、層、領域、又は成分「に」、「に連結された」、「に結合された」と記載される場合、それは他の要素、層、領域、又は成分「に直接的に」、「に直接的に連結された」、「に直接的に結合された」であり、1つ又はそれ以上の間の要素、層、領域、または成分が存在する。なお、要素又は層が2つの要素又は層の「間」あると言及される場合、それは単一の要素又は層が2つの要素又は層の間に有るか、1つ又はそれ以上の要素又は層が、間に存在する。
【0031】
本明細書で使用される用語は、特定の実施形態を説明するためのものであって、本発明を限定するものではない。文脈上明らかに異なる意味でない限り、単数形態の「一つ」は、複数の形態も含む。「構成される〜」、「構成されている〜」、「含む〜」、及び「包含している〜」という用語が、本明細書で使用されるとき、これらの用語は、定められた特徴、整数、ステップ、動作、要素、及び/又は成分の存在を明示するが、一つ又はそれ以上の他の特徴、整数、ステップ、動作、要素、成分、及び/又はそれらのグループの追加又は存在を排除しない。本明細書で使用される「及び/又は」という用語は、一つ又はそれ以上の列挙された項目に関連付けられた任意かつ全ての組み合わせを含む。
【0032】
本明細書で使用される「実質的に」、「約」、「大略的に」の用語及びこれに類似する用語は、近似の用語として使用され、程度の用語として使用されず、当業者によって認識される測定値又は計算値の固有の変動を含意する。本明細書で使用される「約(about)」または「大略(approximately)」は、記載された値を含んで、当該分野の当業者によって決定された特定値(つまり、測定システムの限界)に対する許容可能な偏差の範囲内であることを意味する。たとえば、「約」は、1つ以上の標準偏差内、又は明示された値の±30%、±20%、±10%、±5%以内を意味する。なお、本発明の実施形態を説明するときの「できる」の記載は、「本発明の一つ以上の実施形態」を参照する。本明細書で、「〜使用する」、「使用する〜」、及び「使用される〜」の用語は、それぞれ「〜活用する」、「活用する〜」、及び「活用される〜」と同義語と見なされる。なお、「例示的な」という用語は、例又は説明を意味する。
【0033】
特定の実施形態は、異なる方法で具現される場合、特定のプロセスの順序は、説明した順序とは異なる順序で遂行され得る。例えば、説明された2つの連続的なプロセスは、同時に遂行されるか、または説明した順序とは逆の順序で遂行される。
【0034】
多様な実施形態が、実施形態及び/又は中間構造の概略図である断面図を参照して、本明細書で説明される。このように、例えば、製造技術及び/又は許容誤差の結果として、図面の形状からの変形が予想される。したがって、例示的な実施形態は、本明細書に示す特定の領域の形状に限定されず、例えば、製造からもたらされる形状の偏差を含む。例えば、長方形の注入領域は、典型的に注入領域から注入されない領域への2値変化ではなく、丸い形又は曲線のフィーチャー(feature)及び/又はエッジでの注入濃度の勾配を示す。同様に、注入によって形成された埋め込み領域は、埋め込み領域と注入が起こる表面との間の領域に若干の注入をもたらす。したがって、図面に示された領域は、本質的に概略的であり、その形状はデバイスの領域の実際の形状を例示するものではなく、本発明の技術範囲を限定するものではない。
【0035】
本明細書で説明される電子機器又は電気機器及び/又は任意の他の関連装置又は構成要素は、任意の適切なハードウェア、ファームウェア(例えば、特定用途向け集積回路)、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組み合わせを用いて具現される。例えば、これらのデバイスの多様な構成要素は、1つの集積回路(IC)チップ上、又は個々のICチップ上に形成される。また、これらのデバイスの様々な構成要素は、可撓性印刷回路フィルム、テープキャリアパッケージ(TCP)、印刷回路基板(PCB)、又は1つの基板上に実装される。また、これらのデバイスの様々な構成要素は、1つ以上のコンピューティングデバイス中の1つ以上のプロセッサ上で実行されるプロセス又はスレッドであり、コンピュータプログラム命令を実行して、本明細書で説明された様々な機能を遂行するために、他のシステム構成要素と相互作用する。コンピュータプログラム命令は、例えば、ランダムアクセスメモリー(RAM)のような標準メモリーデバイスを使用するコンピューティングデバイスに実装されるメモリーに格納される。コンピュータプログラム命令は、また、例えば、CD−ROM、フラッシュドライブなどのような非一時的コンピュータ読み取り可能な記録媒体(non−transitory computer readable media)に格納される。なお、当業者には、多様なコンピューティングデバイスの機能が単一のコンピューティングデバイスに結合又は統合されるか、特定のコンピューティングデバイスの機能が1つ以上の他のコンピューティングデバイスに分散されることが理解される。
【0036】
特に定義しない限り、本明細書で使用されるすべての用語(技術用語および科学用語を含む)は、本発明が属する技術分野の当業者によって一般的に理解されるものと同じ意味を有する。なお、一般的に使用される辞典に定義されるような用語は、関連技術及び/又は本明細書に関連して、その意味と一致する意味を有するものと解釈され、理想的、または過度に形式的な意味に解釈されない。
【0037】
大きなデータバッチ(batch)サイズは正確性を失うことなく、全体の学習時間を短縮するのに使用される。このアプローチは、単一の高性能プロセスで計算/メモリーの使用率を高めることで規模を拡大することができる。または、この方法は、モデルの並列性及びデータの並列性を使用して、複数の高性能プロセッサに学習を分散することで拡張することができる。
【0038】
ディープラーニングアプリケーションは、様々な、「メモリーに対するコンピューティングの割合(compute−to−memory ratio)」を示す。コンボルーション(convolutional)層は、高いメモリーに対するコンピューティングの割合を有する。完全連結層/繰り返し層は、中/低のメモリーに対するコンピューティングの割合」を有する。要素単位/スカラー演算は、低いメモリーに対するコンピューティングの割合を有する。アプリケーションごとのメモリーに対するコンピューティングの割合は、これらの組み合わせによって異なる。
【0039】
メモリーに対するコンピューティングの割合が低い作業負荷の場合、コンピューティング中心のスループットプロセッサは、大きなメモリー容量及び帯域幅を適切に使用する。オンチップ・メモリーには、大きなバッチサイズのデータや大きな層サイズのデータを含めることができない。グラフィック処理ユニット(GPU)、中央処理装置(CPU)、及びフィールドプログラマブルゲートアレイ(FGPA)のような最先端のプロセッサは、高帯域幅メモリ(HBM)を使用する。メモリーに対するコンピューティングの割合が高い作業負荷の場合、作業負荷が計算限界に達すると、メモリー帯域幅及びメモリー容量は使用率が低くなる。
【0040】
図1A及び図1Bは、本発明の一実施形態による第2世代高帯域幅メモリー(「HBM2」)システムの構成を示す概略図である。図1Aは、本構成を上方から見た形態を示す平面図である。図1Bは、本構成の側面図である。
【0041】
図1Aを参照すると、本発明の実施形態は、メモリールックアップコンピュータメカニズムのためのシステム、又は第2世代高帯域幅メモリー(HBM2)システム100を提供する。HBM2システム100は、多数の3次元HBM2メモリースタック120に連結された多重ホストダイ(multiple host die)110を備える。本実施形態において、多重ホストダイ(以下、ホストと略記)110は、4個までの3次元HBM2メモリースタック120に連結される。
【0042】
図1Bを参照すると、3次元HBM2メモリースタック(以下、メモリースタックと略記)120は、複数のHBM2メモリーダイ(以下、メモリーダイと略記)130を含む。図1Bに示すように、メモリースタック120は、スタック当たり4個〜8個のメモリーダイ130を有する。それぞれのメモリースタック120は、スタック当たり最大8個のチャンネルを含む。本実施形態において、メモリースタック120は、ロジックダイ150上に位置する。本実施形態で、演算アクセラレーターダイ160は、メモリースタック120の上部に配置される。
【0043】
メモリースタック120の一部は、バンクレベルの並列性を利用するためのルックアップテーブル(「LUT」)として構成される。ルックアップテーブルは、メモリーダイ130に格納される。LUTは、浮動小数点演算の結果(例えば、事前計算された結果)を含む。その結果は、実数値である。メモリーダイ130のLUTに含まれる結果は、ロジックダイ150にストリーミングされる。
【0044】
図2A図2Dは、本発明の一実施形態による設計オプションを示すブロック図である。
【0045】
図2Aは、メモリールックアップメカニズムの第1実施例を示すブロック図である。本実施例によると、LUT220Aは、DRAMダイ210Aに配置される。LUT220Aは、1つ以上の事前計算された浮動小数点演算の実数値の結果C′を含む。本実施例で、実数値の結果C′は、ホール(whole)スカラー浮動小数点値を含む。DRAMダイ210Aは、LUT220Aから値/結果C′を検索(retrieve)する。DRAMダイ210Aは、入力値(A及びB)を使用してLUT220Aから結果C′を識別する。入力値AはLUT220Aの行アドレスを示し、入力値BはLUT220Aの列アドレスを示す。本実施例では、入力値A及び入力値Bは、ホールスカラー浮動小数点値を含む。
【0046】
DRAMダイ210Aは、ロジックダイ280A上に位置するバッファー(「BUF」)230Aに結果C′を伝送する。バッファー230Aは、結果C′を格納する。バッファー230Aは、DRAMダイ210Aに関連して、ロジックダイ280Aによって遂行される行列乗算演算に使用するために、結果C′に対する高速アクセスを許容する。バッファー230Aは、結果C′をアキュムレータ(「ACC」)240Aに伝送する。本実施例で、アキュムレータ240Aは、ロジックダイ280A及びDRAMダイ210Aによって遂行される行列乗算演算の中間結果を計算するのに使用するために、結果C′を収集する。
【0047】
図2Bは、メモリールックアップメカニズムの第2実施例を示すブロック図である。本実施例によると、LUT220Bは、DRAMダイ210Bに配置される。LUT220Bは、事前計算された浮動小数点演算の部分乗算結果「C.fraction」を格納する。DRAMダイ210Bは、入力値「A.fraction」及び入力値「B.fraction」を使用してLUT220Bから結果「C.fraction」を識別する。「A.fraction」の値は、LUTの行アドレスを示し、入力値Aのフラクション(fraction)部分である。「B.fraction」は、LUTの列アドレスを示し、入力値Bのフラクション(fraction)部分である。本実施例によると、「A.fraction」及び「B.fraction」の値には、フラクションスカラー浮動小数点値が含まれる。
【0048】
本実施例では、符号論理と指数加算及び減算論理とはLUTによって具現されないため、LUTのサイズを減少させる。入力値の「A.fraction」と「B.fraction」とは対称であるため、結果の半分だけをLUT220Bに格納するのが適切である。LUT220Bの減少されたサイズは、DRAMダイ210B上に、より多くのストレージ空間を許容する。
【0049】
DRAMダイ210Bは、ロジックダイ280B上に位置するバッファー230Bに結果「C.fraction」を伝送する。バッファー230Bは、結果「C.fraction」を格納する。バッファー230Bは、ロジックダイ280Bによって遂行される行列乗算演算に使用するために、結果「C.fraction」に対する高速アクセスを許容する。バッファー230Bは、結果「C.fraction」をアジャスター(「ADJ」)250にストリーミングする。アジャスター250は、結果「C.fraction」をアライン(align)/処理して結果C′を生成する。アライン(align)後、アジャスター250は、結果C′をアキュムレータ240Bに伝送し、アキュムレータ240Bは、図2Aのアキュムレータ240Aと同じ操作(task)を効果的に達成することができる。アキュムレータ240Bは、ロジックダイ280Bによって遂行される行列乗算演算の中間結果を計算するのに使用するために、結果C′を収集する。
【0050】
図2Cは、メモリールックアップメカニズムの第3実施例を示すブロック図である。本実施例によると、LUT220Cは、DRAMダイ210Cに配置される。LUT220Cは、事前計算された浮動小数点演算のテンソル値の結果「Tensor C′」を含む。DRAMダイ210Cは、テンソル値の結果「Tensor C′」をLUT220Cから検索(retrieve)する。DRAMダイ210Cは、LUT220Cの行アドレス及び列アドレスを使用してテンソル値の結果「Tensor C′」を識別する。「Tensor A」と「Tensor B」との乗算の場合、行アドレスは入力値Aの各行にある全ての要素の連結であり、列アドレスは入力値Bの各列にある全ての要素である。入力値A及び入力値Bはテンソル浮動小数点値を含む。行アドレスは、要素の数に要素の長さを乗じたものと同じである。行インデックスと列インデックスは符号なしの整数であると仮定する。入力値A及び入力値Bが対称であるため、LUT220Cは、テンソル値の結果「Tensor C′」の半分だけを格納する必要がある。
【0051】
一部の実施例で、LUT220Cの大きさはさらに減少される。連結する前に、DRAMダイ210Cの制御エンジンは、その絶対値及び事前計算符号ビットロジック(pre−computer sign bit logic)に基づいて行と列のテンソル値の結果「Tensor C′」を分類する。行インデックスが列インデックスよりも大きいと、DRAMダイ210Cの制御エンジンは、行インデックスと列インデックスとを切り替える。DRAMダイ210C上の制御エンジンは、行インデックス及び列インデックスが符号なしの整数と仮定する。なお、DRAMダイ210Cの制御エンジンは、行及び列のアドレスルックアップの連結のためのLUT220Cを選択するために、事前計算符号ビットロジックを使用する。
【0052】
DRAMダイ210Cは、ロジックダイ280C上に位置するバッファー230Cにテンソル値の結果「Tensor C′」を伝送する。バッファー230Cは、テンソル値の結果「Tensor C′」を格納する。バッファー230Cは、ロジックダイ280Cによって遂行される行列乗算演算で使用するために、テンソル値の結果「Tensor C′」に対する高速アクセスを許容する。バッファー230Cは、図2A及び図2Bのアキュムレータ(240A及び240B)などの1つ以上のアキュムレータを含むテンソルポストプロセッシングユニット(「TPU」)260にテンソル値の結果「Tensor C′」を伝送する。TPU260は、「Tensor C′」のようなテンソル結果のアキュムレータとして機能する。本実施例で、TPU260は、ロジックダイ280Cによって遂行された演算の中間結果を計算するのに使用するために、「Tensor C′」を収集する。
【0053】
図2Dは、メモリールックアップメカニズムの第4実施例を示すブロック図である。本実施例によると、LUT220Dは、DRAMダイ210Dに配置される。なお、本実施例は、バッファーダイ270を含む。LUT220Dは、事前計算された浮動小数点演算の実数値の結果C″を含む。この実施例で、実数値の結果C″は、ホール(whole)スカラー浮動小数点値を含む。DRAMダイ210Dは、LUT220Dから実数値結果C″を検索(retrieve)する。DRAMダイ210Dは、入力値(A′及びB′)を使用してLUT220Dで実数値の結果C″を識別する。入力値A′は、LUT220Dの行アドレスを示し、入力値B′はLUT220Dの列アドレスを示す。本実施例によると、入力値A′及び入力値B′は、ホールスカラー浮動小数点値を含む。
【0054】
DRAMダイ210Dは、実数値の結果C″をロジックダイ280D上に位置するバッファー230Dに伝送する。バッファー230Dは、実数値の結果C″を格納する。バッファー230Dは、ロジックダイ280Dによって遂行される行列乗算演算で使用するために、実数値の結果C″に対する高速アクセスを許容する。バッファー230Dは、実数値の結果C″をフューズドレイヤー(fused layer)ポストプロセッサ(「FPU」)290に伝送する。実数値の結果C″がロジックダイ280Dによって遂行された一連の演算の中間値である状況で、FPU290は、実数値の結果C″をバッファーダイ270に伝送する。一部の実施例で、バッファーダイ270は、ロジックダイ280Dのバッファー230Dに類似した多数のバッファーを含む。分離されたバッファーダイ270は、より大きく複雑な動作に適した中間結果に対するより広い格納を許容する。
【0055】
図3は、メモリールックアップテーブル(LUT)がスカラーベクトル乗算を遂行する方法を示す概略図である。
【0056】
図3を参照すると、本実施形態のプロセスにおいて、入力値Aに無関係なスカラーAは、ベクトル(B1〜Bn)に乗算される。ベクトル−スカラー乗算の結果は、ベクトル積(C1〜Cn)として表現される。スカラーAは、メモリーLUT310から一つの行を活性化するために、行アドレスとして使用される。ベクトル(B1〜Bn)は、列アドレスとして使用され、対応するルックアップの結果である(C1〜Cn)を行バッファー320から読み取る。図2A図2Dに示すように、結果(C1〜Cn)は、累積のためにロジックダイに伝達される。
【0057】
図4は、浮動小数点の指数(exponent)、フラクション(fraction)、又は符号(sign)のような浮動小数点の異なる成分を示す概略的フローを含むブロック図400及びテーブル410を示す。
【0058】
図4に示すように、テーブル410は、浮動小数点の各構成要素によって使用されるビット数を示す。たとえば、64ビットの浮動小数点はフラクションの要素に対して52ビットを、指数の構成要素に対して11ビットを有する。
【0059】
図5は、LUTの冗長(redundant)セクションを示すブロック図500と、行インデックス、列インデックス、及び結果サイズによって使用されるビット数を示すテーブル510とを示す。
【0060】
図5を参照すると、本実施形態の一例で、64ビットの浮動小数点は63ビットの行インデックス、63ビットの列インデックス、及び63ビットの結果サイズを有する。
【0061】
図6は、LUTを「フォールディング(folding)」することにより、メモリー空間を節約するアルゴリズムの視覚的表現を示す図である。
【0062】
図6を参照すると、本実施形態では、入力値は、AとBとで表現される。以前の図に示すように、入力値AはLUTの行アドレスを示し、入力値BはLUTの列アドレスを示す。入力値Bが入力値Aよりも大きい場合、DRAMダイの制御エンジンが、入力値Aと入力値Bとを切り替える。なお、入力値Bの最初のビットが1であると、入力値Aは、入力値Aの全てのビットの逆の順序に等しく、入力値Bは入力値Bの全てのビットの逆の順序に等しい。DRAMダイの制御エンジンは、行インデックスとしてAの最終的な値、列のインデックスとしてBの最終的な値を使用する。このアルゴリズムは、実際のLUTアクセスが、元のテーブルの半分であることを保証する。
【0063】
図7は、LUTを示すブロック図700と、部分プロダクト乗算結果だけを格納するLUTの行インデックス、列インデックス、及び結果サイズによって使用されるビット数を示すテーブル710とを示す。
【0064】
図7に示すように、本実施例で、64ビットの浮動小数点は52ビットの行インデックス、52ビットの列インデックス、及び54ビットの結果サイズを有する。
【0065】
図8は、フラクション(fraction)部分乗算結果を格納するLUTを示すブロック図800である。フラクション(fraction)部分は、同じサイズ(例えば、fraction_length=fraction_segment*fraction_part)の複数のセグメントに分割される。LUTはフラクション(fraction)セグメント乗算の乗算テーブルだけを具現するのに適する。中間結果は丸められず、正規化されない。代わりに、中間結果の全体精度が維持されて、最終的な結果をシフト(shift)又は合算するために加算器に送られる。フラクション(fraction)セグメント乗算の例は、下記の数式(1)の通りである。
【0066】
【数1】
正常の表現式は下記の数式(2)のように表される。
【0067】
【数2】
【0068】
図9は、階層間(layer−by−layer)コンボリューション演算の視覚的表現を示す図である。
【0069】
図9を参照すると、本実施形態の表現は、図2Dに示す実施例に一致する。従来のコンボリューション(convolution)演算で、各階層は、一つずつ計算されなければならない。図9に示すように、第1階層のカーネル900は、第1階層の入力フィーチャーマップ(input feature map)910内の全ての可能な位置に沿ってスライド(slide)(例えば、読み取り)し、第1階層の入力フィーチャーマップ910とコンボリューションして、第2階層の入力フィーチャーマップ930に1つの結果を生成する。その結果、第2階層の入力フィーチャーマップ930の全ての要素は、第1階層の入力フィーチャーマップ910を有する第1階層のカーネル900のコンボリューション結果である。次のステップで、第2階層のカーネル920は、同様に、第2階層の入力フィーチャーマップ930内の全ての可能な位置に沿ってスライドして、第3階層の入力フィーチャーマップ950に結果を生成する。このようなコンボリューション演算は、N個の階層に対して階層ごとに続く。しかし、これらの中間結果のそれぞれ(例えば、第1階層、第2階層、第3階層、…、第N階層)の格納は、問題となる。全ての中間結果をDRAMダイに格納するには、相対的に大量のエネルギーとストレージ空間を必要とする。
【0070】
エネルギー消費と格納の問題を解決するために、本実施形態は、小計算ピラミッド(small computation pyramid)に焦点を合わせる。小計算ピラミッドは、入力フィーチャーマップ(910、930、950)の陰影領域で表示される。各階層が進行するのにつれて陰影領域が減少する。中間結果を格納するときに、入力フィーチャーマップの陰影領域のみが格納される。このような中間結果の各々はDRAMダイの代わりバッファーダイに格納される。バッファーダイは、図2Dのバッファーダイ270として示される。バッファーダイで中間結果を検索(retrieve)することはDRAMダイで中間結果を検索するよりも少ないエネルギーを使用する。一部の実施例で、バッファーは、メモリーダイ上のバッファー、ロジックダイ上のバッファー、または個別のバッファーダイである。
【0071】
上述した内容は、例示的な実施形態を説明するためのものであって、本発明を限定するものではない。当業者は、本発明の技術範囲から逸脱しない範囲内で、多様に変形実施することが可能である。
【産業上の利用可能性】
【0072】
本発明は、高速度及び高効率のコンボリューション演算を支援する高帯域幅メモリーのメモリールックアップメカニズムシステムに有用である。
【符号の説明】
【0073】
100 HBM2システム
110 多重ホストダイ(ホスト)
120 (3次元HBM2)メモリースタック
130 (HBM2)メモリーダイ
150、280A、280B、280C、280D ロジックダイ
160 (演算)アクセラレーターダイ
210A、210B、210C、210D DRAMダイ
220A、220B、220C、220D LUT
230A、230B、230C、230D バッファー(BUF)
240A、240B アキュムレータ
250 アジャスター
260 テンソルポストプロセッシングユニット(TPU)
270 バッファーダイ
290 FPU
310 メモリーLUT
320 行バッファー
400、500、700、800 ブロック図
410、510、710 テーブル
900、920 カーネル
910、930、950 入力フィーチャーマップ
図1A
図1B
図2A
図2B
図2C
図2D
図3
図4
図5
図6
図7
図8
図9