JP2021117536A - 処理ユニット及び処理システム - Google Patents

処理ユニット及び処理システム Download PDF

Info

Publication number
JP2021117536A
JP2021117536A JP2020008527A JP2020008527A JP2021117536A JP 2021117536 A JP2021117536 A JP 2021117536A JP 2020008527 A JP2020008527 A JP 2020008527A JP 2020008527 A JP2020008527 A JP 2020008527A JP 2021117536 A JP2021117536 A JP 2021117536A
Authority
JP
Japan
Prior art keywords
processing
unit
parallel
parallel processing
execution
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.)
Granted
Application number
JP2020008527A
Other languages
English (en)
Other versions
JP7153678B2 (ja
Inventor
稔 大和田
Minoru Owada
稔 大和田
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.)
SoftBank Corp
Original Assignee
SoftBank Corp
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 SoftBank Corp filed Critical SoftBank Corp
Priority to JP2020008527A priority Critical patent/JP7153678B2/ja
Priority to PCT/JP2020/045143 priority patent/WO2021149368A1/ja
Publication of JP2021117536A publication Critical patent/JP2021117536A/ja
Priority to US17/864,447 priority patent/US20220350636A1/en
Application granted granted Critical
Publication of JP7153678B2 publication Critical patent/JP7153678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

【課題】並列処理を適切に実行可能な技術を提供することが望ましい。【解決手段】処理対象データの少なくとも一部を並列処理するか否かを判定する並列処理判定部と、並列処理判定部によって並列処理すると判定された場合に、複数のコアを有する並列処理実行ユニットの複数のコアのそれぞれにVMを実行させるVM実行制御部と、処理対象データの少なくとも一部を並列処理可能な部分データに分割して並列処理実行ユニットのメモリに格納させる格納制御部と、複数のコアのVMによって処理された複数の部分データの処理結果を並列処理実行ユニットから取得する処理結果取得部とを備える処理ユニットを提供する。【選択図】図1

Description

本発明は、処理ユニット及び処理システムに関する。
GPU(Graphics Processing Unit)の演算資源を画像処理以外の目的に応用するGPGPU(General Purpose GPU)が知られていた(例えば、特許文献1参照)。
[先行技術文献]
[特許文献]
[特許文献1]特開2019−220003号公報
本発明の第1の態様によれば、処理ユニットが提供される。処理ユニットは、処理対象データの少なくとも一部を並列処理するか否かを判定する並列処理判定部を備えてよい。処理ユニットは、並列処理判定部によって並列処理すると判定された場合に、複数のコアを有する並列処理実行ユニットの複数のコアのそれぞれにVM(Virtual Machine)を実行させるVM実行制御部を備えてよい。処理ユニットは、処理対象データの少なくとも一部を並列処理可能な部分データに分割して並列処理実行ユニットのメモリに格納させる格納制御部を備えてよい。処理ユニットは、複数のコアのVMによって処理された複数の部分データの処理結果を並列処理実行ユニットから取得する処理結果取得部を備えてよい。
上記VM実行制御部は、上記並列処理判定部によって並列処理すると判定された場合に、上記処理ユニットのコアでVMを実行し、かつ、上記並列処理実行ユニットの上記複数のコアのそれぞれにVMを実行させてよい。上記VM実行制御部は、上記並列処理判定部によって並列処理すると判定された場合に、上記処理ユニットのコアでVMを実行し、かつ、上記処理ユニットのコアのVMと共通するアーキテクチャを有するVMを上記並列処理ユニットの上記複数のコアのそれぞれに実行させてよい。
上記VM実行制御部は、上記並列処理判定部によって上記処理対象データの第1の部分を上記処理ユニットにおいて処理し上記処理対象データの第2の部分を上記並列処理実行ユニットに並列処理させると判定された場合に、上記処理ユニットのコアのVMに上記第1の部分を処理させてよく、上記格納制御部は、上記第2の部分を並列処理可能な部分データに分割して上記並列処理実行ユニットのメモリに格納させてよく、上記処理結果取得部は、上記第2の部分の処理結果を上記並列処理実行ユニットから取得してよい。上記処理ユニットは、上記処理ユニットのコアのVMによる上記第1の部分の処理結果と、上記処理結果取得部が取得した上記第2の部分の処理結果とに基づいて、上記処理対象データの処理結果を生成する処理結果生成部を備えてよい。
上記処理ユニットはCPU(Central Processing Unit)であってよく、上記並列処理実行ユニットはGPUであってよい。上記処理ユニットは、MQTTメッセージを取得するメッセージ取得部を備えてよく、上記並列処理判定部は、上記MQTTメッセージから取得した上記命令セットの少なくとも一部を並列処理するか否かを判定してよい。
本発明の第2の態様によれば、上記処理ユニット及び上記並列処理ユニットを備える処理システムが提供される。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
処理システム100の一例を概略的に示す。 CPU200の機能構成の一例を概略的に示す。 CPU200による処理について説明するための説明図である。 CPU200による処理について説明するための説明図である。 CPU200による処理について説明するための説明図である。 処理システム100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、処理システム100の一例を概略的に示す。処理システム100は、CPU200及びGPU300を有する。CPU200は、処理ユニットの一例であってよい。GPU300は、並列処理実行ユニットの一例であってよい。
CPU200は、複数のコア210を有する。また、CPU200は、メモリ220を有する。
GPU300は、複数のSM(Streaming Multiprocessor)310を有する。SMは、GPU300のコアの一例であってよい。また、GPU300は、メモリ320を有する。
本実施形態に係るCPU200は、処理対象データの少なくとも一部を並列処理するか否かを判定し、並列処理すると判定した場合に、処理対象データの少なくとも一部をGPU300に実行させる。
図2は、CPU200の機能構成の一例を概略的に示す。CPU200は、対象データ取得部232、並列処理判定部234、VM実行制御部236、格納制御部238、処理結果取得部240、及び処理結果生成部242を備える。
対象データ取得部232は、処理対象データを取得する。対象データ取得部232は、任意のデータを処理対象データとして取得してよい。
対象データ取得部232は、一定の形式を有する大量のデータを処理対象データとして取得してよい。例えば、処理システム100がIoT(Internet of Thing)システム内に配置される場合、対象データ取得部232は、処理システム100が受信したMQTT(Message Queueing Telemetry Transport)メッセージなどを、処理対象データとして取得する。対象データ取得部232は、メッセージ取得部の一例であってよい。対象データ取得部232は、MQTTメッセージなどから処理対象データを取得してよい。
並列処理判定部234は、対象データ取得部232が取得した処理対象データの少なくとも一部を並列処理するか否かを判定する。並列処理判定部234は、例えば、処理対象データに、処理対象データの少なくとも一部に対して並列処理可能なデータが含まれている場合に、処理対象データの少なくとも一部を並列処理すると判定する。
並列処理判定部234は、処理対象データを解析して、処理対象データの少なくとも一部が並列処理可能であるか否かを判定してもよい。並列処理判定部234は、例えば、処理対象データ内の複数のデータが、互いの処理に関連せずに実行可能である場合に、並列処理可能であると判定する。
並列処理判定部234は、処理対象データの第1の部分をCPU200において処理し、処理対象データの第2の部分をGPU300に並列処理させると判定してもよい。並列処理判定部234は、例えば、処理対象データのうち、並列処理できない第1の部分をCPU200において処理し、並列処理可能な第2の部分をGPU300に並列処理させると判定する。
VM実行制御部236は、並列処理判定部234によって並列処理すると判定された場合に、GPU300の複数のSM310のそれぞれにVMを実行させる。VM実行制御部236は、並列処理判定部234によって並列処理すると判定された場合にCPU200のコア210でVMを実行し、かつ、複数のSM310のそれぞれにVMを実行させてよい。
VM実行制御部236は、並列処理判定部234によって並列処理すると判定された場合に、コア210でVMを実行し、かつ、コア210のVMと共通するアーキテクチャを有するVMを複数のSM310のそれぞれに実行させてよい。コア210のVMと共通するアーキテクチャを有するVMとは、同じ命令に対して、コア210のVMと同じ処理結果を出力可能なVMであってよい。CPU200とGPU300の物理的な作りが全く異なっていても、GPU300のSM310に、コア210のVMと共通のアーキテクチャを有するVMを実行させることによって処理を連携させることができる。
VM実行制御部236は、並列処理判定部234によって、処理対象データの第1の部分をCPU200において処理し、処理対象データの第2の部分をGPU300に並列処理させると判定された場合に、コア210のVMに第1の部分を処理させてよい。
格納制御部238は、GPU300に並列処理させる処理対象データの少なくとも一部を、並列処理可能な部分データに分割して、GPU300のメモリ320に格納させる。格納制御部238は、並列処理判定部234によって、処理対象データの第2の部分をGPU300に並列処理させると判定された場合に、第2の部分を並列処理可能な部分データに分割して、メモリ320に格納させてよい。
処理結果取得部240は、複数のSM310のVMによって処理された複数の部分データの処理結果をGPU300から取得する。処理結果取得部240は、処理対象データの第1の部分の処理結果をコア210のVMから取得してよい。処理結果取得部240は、処理対象データの第2の部分の処理結果をGPU300から取得してよい。
処理結果生成部242は、処理結果取得部240が取得した処理結果に基づいて、処理対象データの処理結果を生成する。処理結果生成部242は、コア210のVMによる処理対象データの第1の部分の処理結果と、複数のSM310のVMによる処理対象データの第2の部分の処理結果とを組み合わせることによって、処理対象データの処理結果を生成してよい。
図3から図5は、CPU200による処理について説明するための説明図である。図3に示すように、CPU200は、複数のコア210のうちの少なくとも1つでVM212を実行し、メモリ220に格納されている命令セット222を参照する。
VM212は、命令セット222に、メモリ220に格納された処理対象データ224を並列処理する命令が含まれている場合に、図4に示すように、GPU300の複数のSM310のそれぞれに、VM212と共通するアーキテクチャを有するVM312を実行させる。CPU200又はVM212は、命令セット222をコピーした命令セット322をメモリ320に格納させて、命令セット322における、対象となる命令群及び開始位置を VM312に指示する。
CPU200又はVM212は、図5に示すように、処理対象データ224を並列処理可能な部分データ324に分割してメモリ320に格納させる。このとき、GPU300側でもCPU200側でも同じ変数として見えるように、コンパイラとVM212及びVM312とで協調する。
CPU200又はVM212は、メモリ320内の、複数のSM310のそれぞれに対応する位置に、複数のSM310のそれぞれに実行させる部分データ324を格納させてよい。これにより、複数のSM310のそれぞれにとって、最初から自身専用のデータがあったように見せることができる。
GPU300は、命令セット322の命令列を、予め指示された位置から実行する。複数のSM310による並列処理が開始される。メモリ210は、複数のVM312による部分データ324の処理が完了した後、部分データ324から処理結果を収集する。処理結果は、メモリ220に格納される。処理結果は、CPU200で処理したのかGPU300で処理したのか区別がつかない状態となる。
いわゆるGPGPUを使用するには、非常に難解なAPIを慎重に使用する必要があり、使用できる技術者も限られる。それに対して、本実施形態に係る処理システム100によれば、CPU200によって、並列処理の実行可否が判定され、処理対象データの並列処理可能な部分データへの分割と、部分データのメモリ320への格納が実行され、複数のSM310による並列処理結果が取得される。すなわち、処理システム100によれば、従来のAPIを覆い隠すことができ、技術者に求められるレベルを下げることができる。これにより、GPGPUの利用範囲を容易に拡大することができる。
図6は、処理システム100として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、GPU1213、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。GPU1213は、グラフィックコントローラ1216に接続されていてもよい。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD−ROMドライブ及びDVD−RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD−ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
プログラムは、DVD−ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD−ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、記憶装置1224、DVDドライブ(DVD−ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD−ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
100 処理システム、200 CPU、210 コア、212 VM、220 メモリ、222 命令セット、224 処理対象データ、232 対象データ取得部、234 並列処理判定部、236 VM実行制御部、238 格納制御部、240 処理結果取得部、242 処理結果生成部、300 GPU、310 SM、320 メモリ、322 命令セット、324 部分データ、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1213 GPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1230 ROM、1240 入出力チップ

Claims (8)

  1. 処理対象データの少なくとも一部を並列処理するか否かを判定する並列処理判定部と、
    前記並列処理判定部によって並列処理すると判定された場合に、複数のコアを有する並列処理実行ユニットの前記複数のコアのそれぞれにVMを実行させるVM実行制御部と、
    前記処理対象データの少なくとも一部を並列処理可能な部分データに分割して前記並列処理実行ユニットのメモリに格納させる格納制御部と、
    前記複数のコアのVMによって処理された複数の前記部分データの処理結果を前記並列処理実行ユニットから取得する処理結果取得部と
    を備える処理ユニット。
  2. 前記VM実行制御部は、前記並列処理判定部によって並列処理すると判定された場合に、前記処理ユニットのコアでVMを実行し、かつ、前記並列処理実行ユニットの前記複数のコアのそれぞれにVMを実行させる、請求項1に記載の処理ユニット。
  3. 前記VM実行制御部は、前記並列処理判定部によって並列処理すると判定された場合に、前記処理ユニットのコアでVMを実行し、かつ、前記処理ユニットのコアのVMと共通するアーキテクチャを有するVMを前記並列処理実行ユニットの前記複数のコアのそれぞれに実行させる、請求項2に記載の処理ユニット。
  4. 前記VM実行制御部は、前記並列処理判定部によって前記処理対象データの第1の部分を前記処理ユニットにおいて処理し前記処理対象データの第2の部分を前記並列処理実行ユニットに並列処理させると判定された場合に、前記処理ユニットのコアのVMに前記第1の部分を処理させ、
    前記格納制御部は、前記第2の部分を並列処理可能な部分データに分割して前記並列処理実行ユニットのメモリに格納させ、
    前記処理結果取得部は、前記第2の部分の処理結果を前記並列処理実行ユニットから取得する、請求項2又は3に記載の処理ユニット。
  5. 前記処理ユニットのコアのVMによる前記第1の部分の処理結果と、前記処理結果取得部が取得した前記第2の部分の処理結果とに基づいて、前記処理対象データの処理結果を生成する処理結果生成部
    を備える、請求項4に記載の処理ユニット。
  6. 前記処理ユニットはCPUであり、
    前記並列処理実行ユニットはGPUである、
    請求項1から5のいずれか一項に記載の処理ユニット。
  7. MQTTメッセージを取得するメッセージ取得部
    を備え、
    前記並列処理判定部は、前記MQTTメッセージから取得した前記処理対象データの少なくとも一部を並列処理するか否かを判定する、請求項1から6のいずれか一項に記載の処理ユニット。
  8. 請求項1から7のいずれか一項に記載の処理ユニットと
    前記並列処理実行ユニットと
    を備える処理システム。
JP2020008527A 2020-01-22 2020-01-22 コンピュータ Active JP7153678B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020008527A JP7153678B2 (ja) 2020-01-22 2020-01-22 コンピュータ
PCT/JP2020/045143 WO2021149368A1 (ja) 2020-01-22 2020-12-03 処理ユニット及び処理システム
US17/864,447 US20220350636A1 (en) 2020-01-22 2022-07-14 Processing unit and processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020008527A JP7153678B2 (ja) 2020-01-22 2020-01-22 コンピュータ

Publications (2)

Publication Number Publication Date
JP2021117536A true JP2021117536A (ja) 2021-08-10
JP7153678B2 JP7153678B2 (ja) 2022-10-14

Family

ID=76992220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020008527A Active JP7153678B2 (ja) 2020-01-22 2020-01-22 コンピュータ

Country Status (3)

Country Link
US (1) US20220350636A1 (ja)
JP (1) JP7153678B2 (ja)
WO (1) WO2021149368A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
WO2019216127A1 (ja) * 2018-05-09 2019-11-14 日本電信電話株式会社 オフロードサーバおよびオフロードプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US10474490B2 (en) * 2017-06-29 2019-11-12 Advanced Micro Devices, Inc. Early virtualization context switch for virtualized accelerated processing device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012023175A1 (ja) * 2010-08-17 2012-02-23 富士通株式会社 並列処理制御プログラム、情報処理装置、および並列処理制御方法
WO2019216127A1 (ja) * 2018-05-09 2019-11-14 日本電信電話株式会社 オフロードサーバおよびオフロードプログラム

Also Published As

Publication number Publication date
JP7153678B2 (ja) 2022-10-14
US20220350636A1 (en) 2022-11-03
WO2021149368A1 (ja) 2021-07-29

Similar Documents

Publication Publication Date Title
JP6280121B2 (ja) 状態機械エンジンにおける命令挿入
US10877757B2 (en) Binding constants at runtime for improved resource utilization
US9645802B2 (en) Technique for grouping instructions into independent strands
US20140075160A1 (en) System and method for synchronizing threads in a divergent region of code
KR101826828B1 (ko) 로그 데이터 관리 시스템 및 방법
US8990741B2 (en) Circuit design support device, circuit design support method and program
WO2021149368A1 (ja) 処理ユニット及び処理システム
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
JP5702265B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JP7096312B2 (ja) データ処理装置、プログラム、及びデータ処理方法
CN104915352B (zh) 一种验证MapReduce环境下处理数据正确性的方法和装置
US11106846B1 (en) Systems and methods for emulation data array compaction
US10540183B2 (en) Accelerated execution of execute instruction target
JP6572668B2 (ja) 検査方法
JP7254359B2 (ja) プログラム、装置、および、脚本の製造方法
US20230214445A1 (en) Electronic device and control method for electronic device
US20240320050A1 (en) N-way fault tolerant processing system
US11630667B2 (en) Dedicated vector sub-processor system
US20240192994A1 (en) Accelerated draw indirect fetching
JPWO2018150588A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
KR101737785B1 (ko) 프로그램 컴파일 장치 및 프로그램 컴파일 방법
JP6807721B2 (ja) 状態遷移編集装置および状態遷移編集プログラム
JP2016201009A (ja) ソースコード生成システム、ソースコード生成装置、ソースコード生成方法及びプログラム
JP2022156319A (ja) 最小化方法、プログラムおよび最小化装置
CN117612613A (zh) 数据处理方法和装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220617

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: 20220906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221003

R150 Certificate of patent or registration of utility model

Ref document number: 7153678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150