JP7690992B2 - Fpgaシステム - Google Patents

Fpgaシステム Download PDF

Info

Publication number
JP7690992B2
JP7690992B2 JP2023544828A JP2023544828A JP7690992B2 JP 7690992 B2 JP7690992 B2 JP 7690992B2 JP 2023544828 A JP2023544828 A JP 2023544828A JP 2023544828 A JP2023544828 A JP 2023544828A JP 7690992 B2 JP7690992 B2 JP 7690992B2
Authority
JP
Japan
Prior art keywords
function
fpga
client
circuit
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023544828A
Other languages
English (en)
Other versions
JPWO2023032023A1 (ja
Inventor
顕至 田仲
勇輝 有川
猛 伊藤
健 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2023032023A1 publication Critical patent/JPWO2023032023A1/ja
Application granted granted Critical
Publication of JP7690992B2 publication Critical patent/JP7690992B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、FPGAを利用してデータ処理を行うFPGAシステムに関するものである。
従来のデータセンタは、CPU(Central Processing Unit)中心のアーキテクチャが採用されてきた。しかしながら、近年ではCPUの性能向上が鈍化したために、アプリケーションの性能要求に応えるべくCPU以外のアクセラレータを内包するデータセンタが登場した。中でも、FPGA(Field Programmable Gate Array)と呼ばれるアクセラレータは、(I)内部の構成を柔軟に変更できる特性を有する、(II)内部にネットワークの送受信機を内包する、という点から注目されている。
FPGAアクセラレータをデータセンタ内で効率的に制御するためのソフトウェアベースの部品(コンポーネント)としてFPGAマネージャがある(非特許文献1参照)。FPGAマネージャの動作は主に、クライアントがホスト装置上で定義したFPGAの回路の管理と、クライアントがホスト装置上で実行したアプリケーションからFPGA内の回路へのアクセス制御と、が主な目的となる。
FPGAマネージャの動作を以下の図6で説明する。クライアントは、作成したアプリケーションプログラムをホスト装置1に実装する。ホスト装置1に実装されたFPGAマネージャ10は、アプリケーション実行部(App)が実行する処理のうちFPGA2に処理させる機能を実現するファンクション回路を定義するためのビットストリームデータを作成する。FPGAマネージャ10は、FPGA2にビットストリームデータを送信することにより、FPGA2にファンクション回路20を組み込む。
ホスト装置1とFPGA2とは、PCIe(PCI Express)インタフェース部11,21によって接続されている。
Appは、FPGA2に処理を実行させるときに、ファンクション回路20を使用するためのプログラムであるランタイム12を呼び出す。ランタイム12は、PCIeインタフェース部11,21を介してFPGA2内のファンクション回路20に処理を要求する。ファンクション回路20は、要求に応じた処理の結果をランタイム12に返送する。ランタイム12は、処理結果をAppに渡す。ホスト装置1とFPGA2との間のデータ転送は、DMA(Direct Memory Access)ブリッジコントローラ22によるDMA転送によって行われる。
従来のFPGAマネージャでは、ネットワークを介してホスト装置と接続されたクライアントからファンクション使用要求があったときに、要求をいったんホスト装置に取り込む必要があり、実行遅延が増大するという課題があった。
クライアントから要求があったときのFPGAマネージャの動作を図7を用いて説明する。ネットワークを介してホスト装置1と接続されたクライアント端末3は、ホスト装置1のネットワークインタフェース部13を介して、FPGAマネージャ10外のアクセス受付部14にアクセスする必要がある。アクセス受付部14は、Appとは非同期で動作する。このため、クライアント端末3からのアクセス時にアクセス受付部14からAppに対して割り込みをかけるか、あるいはAppがアクセス受付部14に問い合わせをするポーリングを行う必要がある。
割り込みあるいはポーリングにより、Appは、クライアント端末3からのファンクション使用要求の到来を検知すると、ランタイム12を呼び出してFPGA2内のファンクション回路20を起動させる。Appは、ファンクション回路20による処理結果を、要求に対する応答としてクライアント端末3に返送する。
ネットワークからファンクション回路20を直接起動して処理を実行させようとする場合、その実行経路はFPGAマネージャ10によって制御することができない。このため、柔軟な回路の書き換えや実行権限の管理などが不可能となる。よって、図7に示したようにアクセス受付部14をホスト装置1に設ける必要があるが、アクセス受付部14が介在することによって処理の実行遅延が増大する。
Ting-An Yeh,Hung-Hsin Chen,and Jerry Chou,"KubeShare:a framework to manage GPUs as first-class and shared resources in container cloud",Proceedings of the 29th International Symposium on High-Performance Parallel and Distributed Computing,2020
本発明は、上記課題を解決するためになされたもので、クライアントからのファンクション使用要求に応じて余計な遅延なしに処理を実行することができるFPGAシステムを提供することを目的とする。
本発明のFPGAシステムは、FPGAと、ホスト装置とを備え、前記FPGAは、再構成可能な回路領域と、クライアントからのファンクション使用要求に含まれる処理対象のデータを前記回路領域に構築されたファンクション回路に転送し、このファンクション回路による処理結果を前記クライアントに返送するように構成されたアクセス受付部と、前記回路領域の部分毎の識別情報であるファンクションIDと、前記ファンクション回路の機能を表すファンクション名と、前記ファンクション回路の識別情報であるトークンとが対応付けて格納されたテーブルとを備え、前記アクセス受付部は、前記テーブルに格納された内容と、前記ファンクション使用要求に含まれるファンクション名とトークンとに基づいて、前記処理対象のデータを転送すべきファンクション回路を特定し、前記ホスト装置は、前記ファンクション使用要求の前に、前記クライアントから機能の利用申請のためのリソース要求を受信したときに、前記利用申請があった機能に割り当てる前記トークンを生成し、生成したトークンと前記利用申請があった機能を表す前記ファンクション名とを前記FPGAと前記クライアントに送信するように構成されたアプリケーション実行部を備えることを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記アプリケーション実行部は、クライアント毎に異なる前記トークンを生成することを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記FPGAは、前記アプリケーション実行部から受信したファンクション名とトークンとを前記テーブルに書き込み、書き込みを行ったテーブルの行に割り当てたファンクションIDを前記アプリケーション実行部に返送するように構成されたコントローラをさらに備えることを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記ホスト装置は、前記テーブルに格納された内容に対応して前記ファンクション回路を再構成するためのビットストリームデータを前記FPGAに送信するように構成されたファンクション回路管理部をさらに備えることを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記ファンクション回路管理部は、前記クライアントから前記リソース要求を受信したときに、前記テーブルに格納された内容に対応して前記ファンクション回路を再構成するためのビットストリームデータを前記FPGAに送信し、前記クライアントからリソース解放通知を受信したときに、前記ファンクション回路を未定義の状態に戻すビットストリームデータを前記FPGAに送信することを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記FPGAは、前記クライアントとネットワークを介して通信を行うためのネットワークインタフェース部をさらに備え、前記アクセス受付部は、前記クライアントからのファンクション使用要求を前記ネットワークインタフェース部を介して受信し、前記ファンクション回路による処理結果を前記ネットワークインタフェース部を介して前記クライアントに返送することを特徴とするものである。
また、本発明のFPGAシステムの1構成例において、前記アプリケーション実行部は、前記クライアントからのファンクション使用要求を前記FPGAに送信し、前記FPGAから受信した処理結果を前記クライアントに返送し、前記アクセス受付部は、前記ファンクション使用要求を前記アプリケーション実行部から受信し、前記ファンクション回路による処理結果を前記アプリケーション実行部に返送することを特徴とするものである。
本発明によれば、FPGAにアクセス受付部を設けることにより、クライアントはFPGAにファンクション使用要求を送信するだけで、ホスト装置にアクセスすることなくFPGAのファンクション回路にデータを処理させることができる。その結果、クライアントは、余計な遅延なしに処理結果を得ることができる。
図1は、本発明の第1の実施例に係るFPGAシステムの構成を示すブロック図である。 図2は、本発明の第2の実施例に係るFPGAシステムの構成を示すブロック図である。 図3は、本発明の第2の実施例に係るFPGAシステムの動作を説明する図である。 図4は、本発明の第2の実施例に係るFPGAシステムの別の動作を説明する図である。 図5は、本発明の第1、第2の実施例に係るホスト装置を実現するコンピュータの構成例を示すブロック図である。 図6は、従来のFPGAマネージャの動作を説明する図である。 図7は、クライアントから要求があったときの従来のFPGAマネージャの動作を説明する図である。
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係るFPGAシステムの構成を示すブロック図である。
本実施例のFPGA2aは、アクセス受付部23を有する。図7に示した従来の構成では、クライアントからのファンクション使用要求に応えるアクセス受付部14がホスト装置1に設けられていた。一方、本実施例では、アクセス受付部23をFPGA2aのボード上に実装する。
アクセス受付部23は、クライアント端末3からFPGA2aのネットワークインタフェース部25を介して受信したファンクション使用要求を解釈し、解釈の結果に基づいて適切なファンクション回路20-0,20-1にファンクション使用要求を伝える。アクセス受付部23は、ファンクション回路20-0,20-1による処理結果を、ファンクション使用要求に対する応答として要求元のクライアント端末3に返送する。
また、アクセス受付部23は、ホスト装置1aに実装されたアプリケーション実行部(App)からファンクション使用要求を受けた場合にも同様に、ファンクション使用要求を解釈し、解釈の結果に基づいて適切なファンクション回路20-0,20-1にファンクション使用要求を伝える。アクセス受付部23は、ファンクション回路20-0,20-1による処理結果を、ファンクション使用要求に対する応答として要求元のAppに返送する。
ホスト装置1aのFPGAマネージャ10aは、ファンクション回路管理部15を有する。図7に示した従来のFPGAシステムの構成では、Appが実行する処理の一部をFPGA2のファンクション回路20に実行させるようにしていた。一方、本実施例では、クライアント端末3がFPGA2aのファンクション回路20-0,20-1に対してファンクション使用要求を発行することも想定し、Appとファンクション管理とを分ける。
Appは、実行前に、FPGA2aのファンクショントークンテーブル(Function Token Table)24に実行したいファンクションを登録する。
ファンクション回路管理部15は、事前に用意されたビットストリームデータの中から、ファンクショントークンテーブル24に登録された内容に対応するビットストリームデータを読み出す。ファンクション回路管理部15は、FPGA2aにビットストリームデータを送信する。ビットストリームデータは、FPGA2aのコンフィグレーションメモリ26に書き込まれる。これにより、FPGA2aの回路領域31が再構成され、回路領域31にファンクション回路20-0,20-1が構築される。デバイスファイル16については、第2の実施例で説明する。
FPGA2aは、ファンクションIDとファンクション名とトークンとが格納されるファンクショントークンテーブル24を有する。ファンクションIDは、FPGA2aの再構成可能な回路領域31の部分毎の識別番号である。例えば、同じ機能を実現するファンクション回路であっても回路領域31の異なる部分に書き込まれた場合には、異なるファンクションIDが割り当てられる。
ファンクション名は、ファンクション回路の機能を表す名称である。ファンクション名は、ホスト装置1aのファンクション回路管理部15によって管理される。例えば図1の例では、ファンクション名が“grayscale”となっている。この例は、ファンクション回路が、データに対してグレイスケール化の処理を行うことを示している。
クライアントは、使いたいファンクション回路を指定してファンクション使用要求を発行する。ファンクション使用要求には、ファンクション回路を指定する識別子であるトークンが付加される。図1の例では、ファンクションID“0”のファンクション回路のトークンが“hoge”であり、ファンクションID“1”のファンクション回路のトークンが“fuga”である。
次に、本実施例のFPGAシステムの動作について説明する。FPGAシステムの開発者は、クライアントに提供したいFPGA2aの機能を開発し、その機能を実現するファンクション回路を定義するためのビットストリームデータをホスト装置1aのファンクション回路管理部15に格納しておく。
FPGA2aの機能を使用したいクライアントは、クライアント端末3を使ってFPGAシステムの開発者に、使用したい機能の利用申請をする。
利用申請を受け取った開発者は、ホスト装置1aのAppを起動する。
起動したAppは、クライアントから申請があった機能に割り当てるトークンを生成し、クライアントから申請があった機能を表すファンクション名と、生成したトークンとをFPGA2aに送信する。なお、Appは、利用申請があった機能が同じであってもクライアントが異なる場合には、異なるトークンを生成する。
FPGA2aのDMAブリッジコントローラ22は、Appから受信したファンクション名とトークンとをファンクショントークンテーブル24に書き込む。そして、DMAブリッジコントローラ22は、ファンクション名とトークンとを書き込んだファンクショントークンテーブル24の行に割り当てられたファンクションIDをAppに対する応答として返送する。
Appは、FPGA2aから受信したファンクションIDと、クライアントから申請があった機能を表すファンクション名とをファンクション回路管理部15に通知する。
ファンクション回路管理部15は、事前に登録されたビットストリームデータの中からファンクション名に対応するビットストリームデータを読み出す。ファンクション回路管理部15は、読み出したビットストリームデータを、Appから受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2aに送信する。
FPGA2aのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2aの回路領域31が再構成され、ファンクションIDとファンクション名とに対応するファンクション回路が構築される。
DMAブリッジコントローラ22は、回路書き込み完了通知をファンクション回路管理部15に対する応答として返送する。ファンクション回路管理部15は、回路書き込み完了通知をAppに渡す。
回路書き込み完了通知を受け取ったAppは、ホスト装置1aのネットワークインタフェース部13を介して利用申請元のクライアント端末3にリソース割当完了を通知する。このリソース割当完了通知には、クライアントから申請があった機能を表すファンクション名とクライアントから申請があった機能に割り当てたトークンとが付加されている。
リソース割当完了通知を受け取ったクライアントは、クライアント端末3を用いてファンクション使用要求をFPGA2aに送信する。ファンクション使用要求には、Appから通知されたファンクション名とトークンと、処理対象のデータとが付加されている。
FPGA2aのアクセス受付部23は、クライアント端末3からFPGA2aのネットワークインタフェース部25を介して受信したファンクション使用要求を解釈する。アクセス受付部23は、ファンクショントークンテーブル24に格納された内容と、ファンクション使用要求に含まれるファンクション名とトークンとに基づいて、ファンクション使用要求に含まれる処理対象のデータを転送すべきファンクション回路を特定する。アクセス受付部23は、特定したファンクション回路に処理対象のデータを転送する。
例えばファンクション名がgrayscale”で、トークンが“hoge”の場合には、ファンクションID“0”が割り当てられたファンクション回路20-0に処理対象のデータが転送される。
アクセス受付部23は、ファンクション回路20-0による処理結果を、ファンクション使用要求に対する応答として要求元のクライアント端末3に返送する。
データの処理結果を受け取ったクライアント端末3は、App宛に利用完了通知を送信する。
ホスト装置1aのネットワークインタフェース部13を介してクライアント端末3からの利用完了通知を受け取ったAppは、利用が終わった機能に対応するファンクション名とトークンとをファンクショントークンテーブル24から削除するようFPGA2aに要求する。
FPGA2aのDMAブリッジコントローラ22は、Appから指定されたファンクション名とトークンとを含む行をファンクショントークンテーブル24から削除する。そして、DMAブリッジコントローラ22は、削除した行に割り当てられたファンクションIDを、Appに対する応答として返送する。
Appは、FPGA2aから受信したファンクションIDをファンクション回路管理部15に通知する。
ファンクション回路管理部15は、ファンクション回路を削除するビットストリームデータを、Appから受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2aに送信する。
FPGA2aのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2aの回路領域31が未定義の状態に戻る。以上で、FPGAシステムの動作が終了する。
本実施例では、クライアントは、設定さえ済ませておけば、ホスト装置1aにアクセスすることなくFPGA2aのファンクション回路にデータを処理させることができるようになる。つまり、クライアントは、余計な遅延なしに処理を実行することができる。
従来のFPGAマネージャでは、AppがFPGAを管理することから、Appを複数のクライアントで時分割で共有する必要があった。一方、本実施例では、クライアント毎に異なるトークンを割り当て、異なる回路領域を使用することにより、複数のクライアントがFPGA2aを同時利用できるようになり、複数のクライアントでFPGA2aを共有した際の利用効率を向上させることができる。
FPGA2aの利用効率の向上は、FPGAシステムが提供するサービスの利用効率の向上に繋がるため、FPGAシステムを運用する開発者にとっては収益性の向上に繋がる。
また、従来はアクセス受付部をホスト装置に設けていた。このため、クライアントからのファンクション使用要求に応じてFPGAのファンクション回路が処理を実行する際にホスト装置のメモリ、ホスト装置のCPUおよびFPGAが使用されることになり、消費電力が増大する。本実施例では、アクセス受付部23をFPGA2aに設けることにより、クライアントからのファンクション使用要求に応じてFPGAのファンクション回路が処理を実行する際にホスト装置1aを使用することがないので、システムの消費電力を低減することができる。
また、本実施例では、クライアントからの利用申請に応じてFPGA2aのファンクション回路が処理を実行するとき以外はファンクション回路を未定義の状態にしておくので、ファンクション回路の待機電力が発生せず、FPGA2aの消費電力を低減することができる。
また、本実施例では、ベンダーに依存したランタイムを使用しないため、FPGAシステムが特定のベンダーの技術に依存することがない。
[第2の実施例]
次に、本実施例の第2の実施例について説明する。図2は本発明の第2の実施例に係るFPGAシステムの構成を示すブロック図である。本実施例では、FPGAシステムを構築するプラットフォームとしてkubernetesを用いる。kubernetesについては、例えば文献「“Kubernetesドキュメント”,Linux Foundation(登録商標),2021年,<https://kubernetes.io/ja/docs/home/>」に開示されている。以下、kubernetesのことをK8sと略する。
ホスト装置1bのK8sマスターノード(master node)4とK8sワーカーノード(worker node)5とは、第1の実施例のAppを構成する。
K8sマスターノード4は、API(Application Programming Interface)サーバー40を介してK8sワーカーノード5のクブレット(Kubelet)51に働きかける。
具体的には、K8sマスターノード4は、クライアントとの通信、アクセストークンの管理、ファンクションマネージャポッド(Function Manager Pod)50の起動・削除要求を行う。
K8sワーカーノード5は、ファンクションマネージャポッド50と、ファンクションマネージャポッド50の管理を行うクブレット51と、ファンクションマネージャポッド50が記されたデバイスプラグイン(Device Plugin)52と、デバイスファイル53と、メモリ領域54とを有する。
図2中では、FPGA2bは1つであるが、1つのK8sワーカーノード5には、複数のファンクションマネージャポッド50、複数のデバイスプラグイン52、複数のFPGA2bが関連付けられる。
ファンクションマネージャポッド50の一部は、第1の実施例のファンクション回路管理部15に相当する。ファンクションマネージャポッド50は、複数のコンテナを包含する。本実施例では、コンテナ500~502の3つのコンテナを含む。ファンクションマネージャポッド50は、クライアントからの利用申請毎に起動する。
コンテナ500は、クライアントから申請があった機能を表すファンクション名と、クライアントから申請があった機能に割り当てるトークンとを、DMAブリッジコントローラ22を介してFPGA2bのファンクショントークンテーブル24に書き込む。また、コンテナ500は、利用が終わった機能に対応するファンクション名とトークンとをファンクショントークンテーブル24から削除する。
コンテナ501は、FPGA2bの回路領域31を再構成するためのビットストリームデータ503の管理と、回路領域31の書き換え動作の管理と、ファンクショントークンテーブル24の監視とを行う。このコンテナ501が第1の実施例のファンクション回路管理部15を構成している。
コンテナ502は、ホスト装置側のクライアントがログインして、設定が完了したFPGA2bの制御を行うためのコンテナである。
デバイスファイル53(第1の実施例のデバイスファイル16)は、K8sワーカーノード5に接続されたFPGA2bとのインタフェースとなるファイルである。デバイスファイル53には、ビットストリームデータをやり取りするためのデバイスファイル530と、FPGA2bを制御するためのデバイスファイル531とがある。デバイスファイル53は、FPGA2b毎に存在する。ファンクションマネージャポッド50内には複数のデバイスファイル53が存在してもよい。
k8sの場合、ポッド50内の構成の情報はデバイスプラグイン52に記述される。ポッド50内の構成は、起動時にクブレット51経由で動作する。この時、FPGA独自のリソースをメモリ領域54に生成する。図2の例では、リソースとして、空のディレクトリを備えている。このディレクトリの名前は、ファンクション名_ファンクションIDとなる。また、図2中では空のディレクトリとしたが、ファンクション名とファンクションIDを記したリストでも良い。
FPGA2bのDMAブリッジコントローラ22は、FPGA2bとホスト装置1bとを接続する。DMAブリッジコントローラ22は、サイドチャネルとしてセッションIDを発行する。
FPGA2bのTOE(TCP/IP offload engine)27は、ネットワークから送られたきたパケットのトランスポートプロトコルを管理する。本実施例では、インターネット層とトランスポート層の通信プロトコルとしてTCP/IP(Transmission Control Protocol/Internet Protocol)を例に挙げて説明するが、通信プロトコルはTCP/IPに限るものではない。TOE27は、サイドチャネルとしてセッションIDを発行する。TOE27とDMAブリッジコントローラ22でセッションIDは重複しない。
スイッチ28は、入力されたデータが要求なのか、要求に対する応答なのかによってデータの出力方向を選択する。
HTTP(Hypertext Transfer Protocol)パーサー29は、要求の内容を解釈して、解釈の結果に基づく処理をファンクション回路またはファンクショントークンテーブル24に対して行う。
HTTPデパーサー30は、要求に対する応答メッセージを生成する。TOE27とスイッチ28とHTTPパーサー29とHTTPデパーサー30とは、第1の実施例のアクセス受付部23を構成している。
本実施例では、アプリケーション層の通信プロトコルとしてHTTPを例に挙げて説明するが、通信プロトコルはHTTPに限るものではない。
回路領域31は、FPGA2bの書き換え可能な領域である。ファンクショントークンテーブル24は、FPGA2bのDRAM(Dynamic Random Access Memory)、BRAM(Block Random Access Memory)あるいはURAM(Unified Random Access Memory)上に実装される。第1の実施例で説明したとおり、ファンクショントークンテーブル24には、ファンクションIDとファンクション名とトークンとが格納される。ファンクションIDに対してファンクション回路が実現する機能は一意に定まる。一方、ファンクションIDに対してトークンは複数あってもよい。
次に、本実施例のFPGAシステムの動作について説明する。FPGAシステムには、以下の3者が関係する。FPGAシステムの管理者は、全てのプラットフォームを提供する。FPGAシステムの開発者は、プラットフォーム上でFPGAシステムを用いたサービスを開発し、クライアントに提供する。クライアントは、開発者から提供されるサービスを利用する。また、クライアントには、ネットワークを介してFPGA2bにファンクション使用要求を送信するクライアントと、ホスト装置1bを用いるクライアントの2者が存在する。
まず、ネットワーク上のクライアント端末3からファンクション使用要求を送信して処理結果を受け取る場合のFPGAシステムの動作を図3を用いて説明する。
FPGAシステムの開発者は、クライアントに提供したいFPGA2bの機能を開発し、その機能を実現するファンクション回路を定義するためのビットストリームデータ503をホスト装置1bに格納しておく。
FPGA2bの機能を使用したいクライアントは、クライアント端末3を使ってFPGAシステムの開発者に、使用したい機能の利用申請のためのリソース要求を送信する(図3ステップS100)。図3のFunc0×1,Func1×1は、クライアントが、データに対するグレイスケール化の機能を2つ使用したいと要求したことを示している。
利用申請を受け取った開発者は、ホスト装置1bのApp(K8sマスターノード4、K8sワーカーノード5)を起動する。
K8sマスターノード4は、クライアントから申請があった機能に割り当てるトークンを生成する(図3ステップS101)。図3の例では、作成したトークンを“XXX”とする。K8sマスターノード4は、クブレット51を介し、デバイスプラグイン52に従い、ポッド50を起動させる(図3ステップS102~S105)。
K8sマスターノード4がクライアントからのリソース要求をクブレット51経由でデバイスプラグイン52に渡すことで、デバイスプラグイン52は、クライアントが使用したい機能の数だけディレクトリをメモリ領域54に作成する。ディレクトリ名は、ファンクション名_ファンクションIDとなる。図2の例では、grayscale_0,grayscale_1という名前の2つのディレクトリが作成される。なお、ディレクトリ名に使用されるファンクションIDは、後述のファンクショントークンテーブル24に書き込まれるファンクションIDと異なっていてもよい。
起動したポッド50のコンテナ500は、メモリ領域54からディレクトリ名を読み取り、ディレクトリ名の末尾のファンクションIDを確認する。コンテナ500は、ディレクトリ名とファンクションIDの数だけ、ファンクション名とトークンとをFPGA2bに送信する(図3ステップS106)。
FPGA2bのDMAブリッジコントローラ22は、コンテナ500から受信したファンクション名とトークンとをファンクショントークンテーブル24に書き込む。そして、DMAブリッジコントローラ22は、ファンクション名とトークンとを書き込んだファンクショントークンテーブル24の行に割り当てられたファンクションIDをコンテナ500に返送する。
コンテナ500は、FPGA2bから受信したファンクションIDと、ディレクトリ名から読み取ったファンクション名とをコンテナ501に通知する。
コンテナ501は、ホスト装置1bに事前に登録されたビットストリームデータ503の中からファンクション名に対応するビットストリームデータを読み出す。コンテナ501は、読み出したビットストリームデータを、コンテナ500から受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2bに送信する。
FPGA2bのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2bの回路領域が再構成され、ファンクションIDとファンクション名とに対応するファンクション回路が構築される。
DMAブリッジコントローラ22は、回路書き込み完了通知をポッド50に対する応答として返送する。
回路書き込み完了通知を受け取ったポッド50は、クブレット51を介してクライアント端末3にリソース割当完了を通知する(図3ステップS107~S109)。このリソース割当完了通知には、クライアントから申請があった機能を表すファンクション名とクライアントから申請があった機能に割り当てたトークンとが付加されている。
リソース割当完了通知を受け取ったクライアントは、クライアント端末3を用いてファンクション使用要求(HTTP要求)をFPGA2bに送信する(図3ステップS110)。ファンクション使用要求には、FPGA2bのネットワークインタフェース部25のIP(Internet Protocol)番号およびポート番号と、ポッド50から通知されたファンクション名とトークンと、処理対象のデータとが付加されている。
FPGA2bのTOE27は、ネットワークインタフェース部25を介して受信したファンクション使用要求に対してトランスポートプロトコルの処理を行う。
FPGA2bのスイッチ28は、TOE27が発行するセッションIDに基づいて、TOE27から受け取ったデータがクライアントからのデータであることを検知する。そして、スイッチ28は、TOE27から受け取ったデータがファンクション使用要求であることから、HTTPパーサー29にファンクション使用要求を転送する。
HTTPパーサー29は、ファンクション使用要求の内容を解釈する。HTTPパーサー29は、ファンクショントークンテーブル24に格納された内容と、ファンクション使用要求に含まれるファンクション名とトークンとに基づいて、ファンクション使用要求に含まれる処理対象のデータを転送すべきファンクション回路を特定する。HTTPパーサー29は、特定したファンクション回路に処理対象のデータを転送する。
例えばファンクション名がgrayscale”で、トークンが“hoge”の場合には、ファンクションID“0”が割り当てられたファンクション回路20-0に処理対象のデータが転送される。
FPGA2bのHTTPデパーサー30は、ファンクション回路20-0による処理結果を、ファンクション使用要求に対する応答データとして作成する。
スイッチ28は、HTTPデパーサー30から受け取ったデータがファンクション使用要求に対する応答データであることから、TOE27に応答データを転送する。
TOE27は、スイッチ28から受け取った応答データから応答パケットを組み立てて、応答パケットをネットワークインタフェース部25を介して要求元のクライアント端末3に返送する。
クライアントが希望する処理が終了するまで、ファンクション使用要求の送信と処理結果の受信とが繰り返し行われる。
そして、クライアントは、所望の処理の終了後に、クライアント端末3を用いてホスト装置1bのK8sマスターノード4にリソース解放通知を送る(図3ステップS111)。
リソース解放通知を受け取ったK8sマスターノード4は、クブレット51を介してポッド50にポッド削除要求を送る(図3ステップS112,S113)。
ポッド削除要求を受け取ったポッド50のコンテナ500は、利用が終わった機能に対応するファンクション名とトークンとをファンクショントークンテーブル24から削除するようFPGA2bに要求する(図3ステップS114)。
FPGA2bのDMAブリッジコントローラ22は、コンテナ500から指定されたファンクション名とトークンとを含む行をファンクショントークンテーブル24から削除する。そして、DMAブリッジコントローラ22は、削除した行に割り当てられたファンクションIDをコンテナ500に返送する。
コンテナ500は、FPGA2bから受信したファンクションIDをコンテナ501に通知する。
コンテナ501は、ファンクション回路を削除するビットストリームデータを、コンテナ500から受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2bに送信する。
FPGA2bのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2bの回路領域が未定義の状態に戻る。
コンテナ501は、ポッド50を終了させ、クブレット51を介してポッド削除完了通知をK8sマスターノード4に送る(図3ステップS115,S116)。
以上で、FPGAシステムの動作が終了する。
次に、ホスト装置1bにアクセスしたクライアント端末3からファンクション使用要求を送信して処理結果を受け取る場合のFPGAシステムの動作を図4を用いて説明する。
FPGAシステムの開発者は、クライアントに提供したいFPGA2bの機能を開発し、その機能を実現するファンクション回路を定義するためのビットストリームデータ503をホスト装置1bに格納しておく。
FPGA2bの機能を使用したいクライアントは、クライアント端末3を使ってFPGAシステムの開発者に、使用したい機能の利用申請のためのリソース要求を送信する(図4ステップS200)。図4のFunc0×1,Func1×1は、クライアントが、データに対するグレイスケール化の機能を2つ使用したいと要求したことを示している。
利用申請を受け取った開発者は、ホスト装置1bのApp(K8sマスターノード4、K8sワーカーノード5)を起動する。
K8sマスターノード4は、クライアントから申請があった機能に割り当てるトークンを生成する(図4ステップS201)。図4の例では、作成したトークンを“XXX”とする。K8sマスターノード4は、クブレット51を介し、デバイスプラグイン52に従い、ポッド50を起動させる(図4ステップS202~S205)。
K8sマスターノード4がクライアントからのリソース要求をクブレット51経由でデバイスプラグイン52に渡すことで、デバイスプラグイン52は、クライアントが使用したい機能の数だけディレクトリをメモリ領域54に作成する。ディレクトリ名は、ファンクション名_ファンクションIDとなる。
起動したポッド50のコンテナ500は、メモリ領域54からディレクトリ名を読み取り、ディレクトリ名の末尾のファンクションIDを確認する。コンテナ500は、ディレクトリ名とファンクションIDの数だけ、ファンクション名とトークンとをFPGA2bに送信する(図4ステップS206)。
FPGA2bのDMAブリッジコントローラ22は、コンテナ500から受信したファンクション名とトークンとをファンクショントークンテーブル24に書き込む。そして、DMAブリッジコントローラ22は、ファンクション名とトークンとを書き込んだファンクショントークンテーブル24の行に割り当てられたファンクションIDをコンテナ500に返送する。
コンテナ500は、FPGA2bから受信したファンクションIDと、ディレクトリ名から読み取ったファンクション名とをコンテナ501に通知する。
コンテナ501は、ホスト装置1bに事前に登録されたビットストリームデータ503の中からファンクション名に対応するビットストリームデータを読み出す。コンテナ501は、読み出したビットストリームデータを、コンテナ500から受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2bに送信する。
FPGA2bのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2bの回路領域が再構成され、ファンクションIDとファンクション名とに対応するファンクション回路が構築される。
DMAブリッジコントローラ22は、回路書き込み完了通知をポッド50に対する応答として返送する。
回路書き込み完了通知を受け取ったポッド50は、クブレット51に回路書き込み完了を通知する(図4ステップS207)。
クブレット51は、クライアントがファンクション回路を利用するためのコンテナ502を作成する(図4ステップS208~S210)。クブレット51は、コンテナ502の作成完了後、クライアント端末3にリソース割当完了を通知する(図4ステップS211,S212)。このリソース割当完了通知には、クライアントから申請があった機能を表すファンクション名とクライアントから申請があった機能に割り当てたトークンとが付加されている。
リソース割当完了通知を受け取ったクライアントは、クライアント端末3を用いてホスト装置1bにログインし、ファンクション使用要求(HTTP要求)をホスト装置1bに送信する(図4ステップS213)。ファンクション使用要求には、クブレット51から通知されたファンクション名とトークンと、処理対象のデータとが付加されている。
ホスト装置1bのコンテナ502は、クライアントからのファンクション使用要求をFPGA2bに送信する(図4ステップS214)。
FPGA2bのDMAブリッジコントローラ22は、ホスト装置1bから受信したファンクション使用要求をスイッチ28に渡す。
FPGA2bのスイッチ28は、DMAブリッジコントローラ22が発行するセッションIDに基づいて、DMAブリッジコントローラ22から受け取ったデータがクライアントからのデータであることを検知する。そして、スイッチ28は、DMAブリッジコントローラ22から受け取ったデータがファンクション使用要求であることから、HTTPパーサー29にファンクション使用要求を転送する。
HTTPパーサー29は、ファンクション使用要求の内容を解釈する。HTTPパーサー29は、ファンクショントークンテーブル24に格納された内容と、ファンクション使用要求に含まれるファンクション名とトークンとに基づいて、ファンクション使用要求に含まれる処理対象のデータを転送すべきファンクション回路を特定する。HTTPパーサー29は、特定したファンクション回路に処理対象のデータを転送する。
FPGA2bのHTTPデパーサー30は、ファンクション回路による処理結果を、ファンクション使用要求に対する応答データとして作成する。
スイッチ28は、HTTPデパーサー30から受け取ったデータがファンクション使用要求に対する応答データであることから、DMAブリッジコントローラ22に応答データを転送する。
DMAブリッジコントローラ22は、スイッチ28から受け取った応答データをホスト装置1bに返送する。
ホスト装置1bのコンテナ502は、FPGA2bから受信した応答データを要求元のクライアント端末3に返送する。
クライアントが希望する処理が終了するまで、ファンクション使用要求の送信と処理結果の受信とが繰り返し行われる。
クライアントは、所望の処理の終了後に、クライアント端末3を用いてホスト装置1bのK8sマスターノード4にリソース解放通知を送る(図4ステップS216)。
リソース解放通知を受け取ったK8sマスターノード4は、クブレット51にポッド削除要求を送る(図4ステップS217)。
クブレット51は、ポッド50のコンテナ502にコンテナ削除要求を送って、利用が終わったコンテナ502を削除する(図4ステップS218,S219)。さらに、クブレット51は、ポッド50のコンテナ500にコンテナ削除要求を送る(図4ステップS220)。
コンテナ削除要求を受け取ったコンテナ500は、利用が終わった機能に対応するファンクション名とトークンとをファンクショントークンテーブル24から削除するようFPGA2bに要求する(図4ステップS221)。
FPGA2bのDMAブリッジコントローラ22は、コンテナ500から指定されたファンクション名とトークンとを含む行をファンクショントークンテーブル24から削除する。そして、DMAブリッジコントローラ22は、削除した行に割り当てられたファンクションIDをコンテナ500に返送する。
コンテナ500は、FPGA2bから受信したファンクションIDをコンテナ501に通知する。
コンテナ501は、ファンクション回路を削除するビットストリームデータを、コンテナ500から受け取ったファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込むためにFPGA2bに送信する。
FPGA2bのDMAブリッジコントローラ22を介してビットストリームデータがファンクションIDに対応するコンフィグレーションメモリ26の領域に書き込まれたことにより、ファンクションIDに対応するFPGA2bの回路領域が未定義の状態に戻る。
コンテナ501は、ポッド50を終了させ、クブレット51を介してポッド削除完了通知をK8sマスターノード4に送る(図4ステップS222,S223)。
以上で、FPGAシステムの動作が終了する。
本実施例では、図3で説明したように、クライアントは、設定さえ済ませておけば、ホスト装置1bにアクセスすることなくFPGA2bのファンクション回路にデータを処理させることができるようになる。従来はホスト装置にアクセスする遅延が大きかったが、本実施例では、クライアントは、余計な遅延なしに処理を実行することができる。
従来のFPGAマネージャでは、AppがFPGAを管理することから、Appを複数のクライアントで時分割で共有する必要があった。一方、本実施例では、クライアント毎に異なるトークンを割り当て、異なる回路領域を使用することにより、複数のクライアントがFPGA2bを同時利用できるようになり、複数のクライアントでFPGA2bを共有した際の利用効率を向上させることができる。
FPGA2bの利用効率の向上は、FPGAシステムが提供するサービスの利用効率の向上に繋がるため、FPGAシステムを運用する開発者にとっては収益性の向上に繋がる。
また、従来はアクセス受付部をホスト装置に設けていた。このため、クライアントからのファンクション使用要求に応じてFPGAのファンクション回路が処理を実行する際にホスト装置のメモリ、ホスト装置のCPUおよびFPGAが使用されることになり、消費電力が増大する。
本実施例では、アクセス受付部(TOE27、スイッチ28、HTTPパーサー29、HTTPデパーサー30)をFPGA2bに設けることにより、クライアントからのファンクション使用要求に応じてFPGA2bのファンクション回路が処理を実行する際にホスト装置1bを使用することがないので、システムの消費電力を低減することができる。ホスト装置1bは、ファンクショントークンテーブル24の管理だけを行い、ファンクション使用要求に応じたデータ転送を行う必要がなくなる。
また、本実施例では、クライアントからの利用申請に応じてFPGA2bのファンクション回路が処理を実行するとき以外はファンクション回路を未定義の状態にしておくので、ファンクション回路の待機電力が発生せず、FPGA2bの消費電力を低減することができる。
また、従来はネットワークが広帯域でもPCIeインタフェース部が広帯域でなければサービスのスループットが制限される。よって、ネットワークとPCIeの両方への投資が必要であった。一方、本実施例では、図3で説明した動作の場合、ネットワークの帯域でサービスのスループットが決定されるため、投資効率を改善することができる。
また、本実施例では、ベンダーに依存したランタイムを使用しないため、FPGAシステムが特定のベンダーの技術に依存することがない。
なお、本実施例では、FPGAシステムを構築するプラットフォームとしてkubernetesを用いたが、他のツールを使用してもよいことは言うまでもない。
第1、第2の実施例で説明したホスト装置1a,1bは、CPU、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図5に示す。コンピュータは、CPU200と、記憶装置201と、インタフェース装置(I/F)202とを備えている。
I/F202には、例えばネットワークインタフェース部13のハードウェア等が接続される。このようなコンピュータにおいて、本発明のFPGAシステムを実現させるためのプログラムは、記憶装置201に格納される。CPU200は、記憶装置201に格納されたプログラムに従って第1、第2の実施例で説明した処理を実行する。
本実施例は、FPGAを利用するシステムに適用することができる。
1a,1b…ホスト装置、2a,2b…FPGA、3…クライアント端末、4…K8sマスターノード、5…K8sワーカーノード、10a…FPGAマネージャ、13,25…ネットワークインタフェース部、15…ファンクション回路管理部、20-0,20-1…ファンクション回路、22…DMAブリッジコントローラ、23…アクセス受付部、24…ファンクショントークンテーブル、26…コンフィグレーションメモリ、27…TOE、28…スイッチ、29…HTTPパーサー、30…HTTPデパーサー、31…回路領域、40…APIサーバー、50…ファンクションマネージャポッド、51…クブレット、52…デバイスプラグイン、53,530,531…デバイスファイル、54…メモリ領域、500~502…コンテナ、App…アプリケーション実行部。

Claims (7)

  1. FPGAと、
    ホスト装置とを備え、
    前記FPGAは、
    再構成可能な回路領域と、
    クライアントからのファンクション使用要求に含まれる処理対象のデータを前記回路領域に構築されたファンクション回路に転送し、このファンクション回路による処理結果を前記クライアントに返送するように構成されたアクセス受付部と、
    前記回路領域の部分毎の識別情報であるファンクションIDと、前記ファンクション回路の機能を表すファンクション名と、前記ファンクション回路の識別情報であるトークンとが対応付けて格納されたテーブルとを備え、
    前記アクセス受付部は、前記テーブルに格納された内容と、前記ファンクション使用要求に含まれるファンクション名とトークンとに基づいて、前記処理対象のデータを転送すべきファンクション回路を特定し、
    前記ホスト装置は、前記ファンクション使用要求の前に、前記クライアントから機能の利用申請のためのリソース要求を受信したときに、前記利用申請があった機能に割り当てる前記トークンを生成し、生成したトークンと前記利用申請があった機能を表す前記ファンクション名とを前記FPGAと前記クライアントに送信するように構成されたアプリケーション実行部を備えることを特徴とするFPGAシステム
  2. 請求項記載のFPGAシステムにおいて、
    前記アプリケーション実行部は、クライアント毎に異なる前記トークンを生成することを特徴とするFPGAシステム。
  3. 請求項または記載のFPGAシステムにおいて、
    前記FPGAは、前記アプリケーション実行部から受信したファンクション名とトークンとを前記テーブルに書き込み、書き込みを行ったテーブルの行に割り当てたファンクションIDを前記アプリケーション実行部に返送するように構成されたコントローラをさらに備えることを特徴とするFPGAシステム。
  4. 請求項記載のFPGAシステムにおいて、
    前記ホスト装置は、前記テーブルに格納された内容に対応して前記ファンクション回路を再構成するためのビットストリームデータを前記FPGAに送信するように構成されたファンクション回路管理部をさらに備えることを特徴とするFPGAシステム。
  5. 請求項記載のFPGAシステムにおいて、
    前記ファンクション回路管理部は、前記クライアントから前記リソース要求を受信したときに、前記テーブルに格納された内容に対応して前記ファンクション回路を再構成するためのビットストリームデータを前記FPGAに送信し、前記クライアントからリソース解放通知を受信したときに、前記ファンクション回路を未定義の状態に戻すビットストリームデータを前記FPGAに送信することを特徴とするFPGAシステム。
  6. 請求項乃至のいずれか1項に記載のFPGAシステムにおいて、
    前記FPGAは、前記クライアントとネットワークを介して通信を行うためのネットワークインタフェース部をさらに備え、
    前記アクセス受付部は、前記クライアントからのファンクション使用要求を前記ネットワークインタフェース部を介して受信し、前記ファンクション回路による処理結果を前記ネットワークインタフェース部を介して前記クライアントに返送することを特徴とするFPGAシステム。
  7. 請求項乃至のいずれか1項に記載のFPGAシステムにおいて、
    前記アプリケーション実行部は、前記クライアントからのファンクション使用要求を前記FPGAに送信し、前記FPGAから受信した処理結果を前記クライアントに返送し、
    前記アクセス受付部は、前記ファンクション使用要求を前記アプリケーション実行部から受信し、前記ファンクション回路による処理結果を前記アプリケーション実行部に返送することを特徴とするFPGAシステム。
JP2023544828A 2021-08-31 2021-08-31 Fpgaシステム Active JP7690992B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/031861 WO2023032023A1 (ja) 2021-08-31 2021-08-31 Fpgaおよびfpgaシステム

Publications (2)

Publication Number Publication Date
JPWO2023032023A1 JPWO2023032023A1 (ja) 2023-03-09
JP7690992B2 true JP7690992B2 (ja) 2025-06-11

Family

ID=85410791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023544828A Active JP7690992B2 (ja) 2021-08-31 2021-08-31 Fpgaシステム

Country Status (3)

Country Link
US (1) US20240429920A1 (ja)
JP (1) JP7690992B2 (ja)
WO (1) WO2023032023A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207832A (ja) 2014-04-17 2015-11-19 キヤノン株式会社 再構成可能回路を含む電子装置及び画像処理装置及び画像処理方法
JP2016063490A (ja) 2014-09-19 2016-04-25 株式会社東芝 再構成可能な半導体集積回路および電子機器
JP2021086341A (ja) 2019-11-27 2021-06-03 株式会社リコー ユーザ認証システム、ユーザ認証方法、およびユーザ認証プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436160B2 (en) * 2019-10-03 2022-09-06 Microsoft Technology Licensing, Llc Protection of data in memory of an integrated circuit using a secret token

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015207832A (ja) 2014-04-17 2015-11-19 キヤノン株式会社 再構成可能回路を含む電子装置及び画像処理装置及び画像処理方法
JP2016063490A (ja) 2014-09-19 2016-04-25 株式会社東芝 再構成可能な半導体集積回路および電子機器
JP2021086341A (ja) 2019-11-27 2021-06-03 株式会社リコー ユーザ認証システム、ユーザ認証方法、およびユーザ認証プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宇野 正樹 他,DRLチップを用いたリコンフィギュラブルテストベッド上におけるWASMIIシステム,電子情報通信学会技術研究報告,社団法人電子情報通信学会,2002年01月16日,Vol.101 No.578,第9頁-第16頁,ISSN:0913-5685

Also Published As

Publication number Publication date
WO2023032023A1 (ja) 2023-03-09
US20240429920A1 (en) 2024-12-26
JPWO2023032023A1 (ja) 2023-03-09

Similar Documents

Publication Publication Date Title
US11157304B2 (en) System for peering container clusters running on different container orchestration systems
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US8201190B2 (en) Sharing a network I/O adapter between logical partitions
CN112416737B (zh) 一种容器的测试方法、装置、设备和存储介质
CN111324558A (zh) 数据处理方法、装置、分布式数据流编程框架及相关组件
US20110239216A1 (en) Service providing system, a virtual machine server, a service providing method, and a program thereof
CN113268308A (zh) 信息处理方法、装置以及存储介质
WO2022143714A1 (zh) 服务器系统、虚拟机创建方法及装置
CN110532106B (zh) 进程间的通讯方法、装置、设备和存储介质
CN116383127B (zh) 节点间通信方法、装置、电子设备及存储介质
US12452331B1 (en) File-sharing method, apparatus and system, electronic device, and storage medium
US20250190237A1 (en) Device access method and system for secure docker
CN115509435A (zh) 一种数据读写方法、装置、设备、介质
CN117061270A (zh) 一种基于分布式软总线实现远程设备本地化虚拟与访问的方法
US8442939B2 (en) File sharing method, computer system, and job scheduler
JP7690992B2 (ja) Fpgaシステム
US11221807B2 (en) Non-transitory computer-readable medium and device management system
WO2021258861A1 (zh) 一种作业处理方法以及相关设备
CN117041147B (zh) 智能网卡设备、主机设备和方法及系统
JP2024541872A (ja) コンテナ・エンジン及びコンテナ・エンジンの実現方法
CN115225693A (zh) 一种容器间的通信方法及相关产品
JP7709666B2 (ja) ネットワーク管理装置、ネットワーク管理方法及びプログラム
CN114237738B (zh) 设备管理方法、装置、电子设备及计算机可读存储介质
US11849005B2 (en) Method and apparatus for accelerating network transmission in memory-disaggregated environment
CN117648210A (zh) 一种远程访问图形处理器的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250513

R150 Certificate of patent or registration of utility model

Ref document number: 7690992

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350