IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ リベリオンズ インコーポレイテッドの特許一覧

特開2023-155170高頻度証券取引のためのハードウェア性能調節方法及びシステム
<>
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図1
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図2
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図3
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図4
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図5
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図6
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図7
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図8
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図9
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図10
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図11
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図12
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図13
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図14
  • 特開-高頻度証券取引のためのハードウェア性能調節方法及びシステム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023155170
(43)【公開日】2023-10-20
(54)【発明の名称】高頻度証券取引のためのハードウェア性能調節方法及びシステム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231013BHJP
   G06Q 40/04 20120101ALI20231013BHJP
   G06F 9/50 20060101ALI20231013BHJP
【FI】
G06N20/00
G06Q40/04
G06F9/50 150C
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023042519
(22)【出願日】2023-03-17
(31)【優先権主張番号】10-2022-0043474
(32)【優先日】2022-04-07
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2023-0000451
(32)【優先日】2023-01-02
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】522431896
【氏名又は名称】リベリオンズ インコーポレイテッド
【氏名又は名称原語表記】REBELLIONS INC.
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(74)【代理人】
【識別番号】100165803
【弁理士】
【氏名又は名称】金子 修平
(72)【発明者】
【氏名】キム ヒョンソン
(72)【発明者】
【氏名】ユ ソンヨップ
(72)【発明者】
【氏名】オ ジンウク
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055BB51
(57)【要約】
【課題】少なくとも一つのプロセッサにより遂行される高頻度証券取引方法のためのハードウェア性能調節方法を提供する。
【解決手段】本開示の一実施例に係るハードウェア性能調節方法は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト(context)情報を受信するステップと、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定するステップと、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更するステップとを含むことができる。
【選択図】図9
【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサによって遂行される、高頻度証券取引のためのハードウェアの性能を調節する方法において、
一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、前記マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト情報を受信するステップと、
前記受信されたコンテクスト情報に基づいて、前記ハードウェアに対する処理性能を変更するか否かを判定するステップと、
前記処理性能を変更する判定結果に基づいて、前記ハードウェアに供給されるリソースを変更するステップと、を含む、ハードウェア性能調節方法。
【請求項2】
前記リソースを変更するステップは、前記ハードウェアに供給されるクロックの速度又は電圧のうちの少なくとも一つを変更するステップを含む、請求項1に記載のハードウェア性能調節方法。
【請求項3】
前記処理性能を変更するか否かを判定するステップは、前記受信されたコンテクストに基づいて、前記ハードウェアに要求される処理性能を決定するステップを含み、
前記リソースを変更するステップは、前記決定されたハードウェアの処理性能によって、前記ハードウェアに供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップを含む、請求項2に記載のハードウェア性能調節方法。
【請求項4】
前記ハードウェアは、前記機械学習モデルの演算のための複数の専用加速器を含み、
前記クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、
前記複数の専用加速器のうちで、前記決定された処理性能に基づいて、一つ以上の専用加速器を識別するステップと、
前記識別された一つ以上の専用加速器に供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップと、を含む、請求項3に記載のハードウェア性能調節方法。
【請求項5】
前記ハードウェアは、専用加速器、メモリ又はプロセッサのうちの少なくとも一つを含み、前記専用加速器、前記メモリ又は前記プロセッサのうちの少なくとも一つは、前記機械学習モデルに含まれた複数のレイヤと関連付けられた複数の処理領域に区画され、
前記クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、
複数の処理領域のうちで、前記決定された処理性能に基づいて、一つ以上の処理領域を識別するステップと、
前記識別された一つ以上の処理領域に供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップと、を含む、請求項3に記載のハードウェア性能調節方法。
【請求項6】
前記クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、前記決定された処理性能に対応する目標電圧を前記ハードウェアに供給するために、複数の電圧ソースの一つ以上の電圧ソースが活性化するように制御するステップを含む、請求項3に記載のハードウェア性能調節方法。
【請求項7】
前記リソースを変更するステップの以後に、
前記変更されたリソースが既定の閾値以上であるか否かを判定するステップと、
前記変更されたリソースが既定の閾値以上である場合、前記変更されたリソースが供給される時間を測定するステップと、
前記測定された時間が閾時間に到達すれば、前記閾値よりも低いリソースが前記ハードウェアに供給されるように制御するステップと、をさらに含む、請求項1に記載のハードウェア性能調節方法。
【請求項8】
少なくとも一つのプロセッサによって遂行される、高頻度証券取引のためのハードウェアの性能を調節する方法において、
高頻度証券取引のための複数の入力データを獲得するステップと、
作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷を決定するステップと、
前記決定された作業負荷に基づいて、前記複数の入力データのうちの少なくとも一つの入力データを選択するステップと、
前記選択された少なくとも一つの入力データを前記機械学習モデルに適用するステップと、を含む、ハードウェア性能調節方法。
【請求項9】
前記作業負荷を決定するステップは、
前記許容時間及び前記ハードウェアの可用リソースに基づいて、前記作業負荷を処理するための前記ハードウェアのリソースを決定するステップと、
前記決定されたリソースを前記ハードウェアに供給するステップと、を含む、請求項8に記載のハードウェア性能調節方法。
【請求項10】
前記決定されたリソースを前記ハードウェアに供給するステップは、前記決定されたリソースに基づいて、前記ハードウェアに供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップを含む、請求項9に記載のハードウェア性能調節方法。
【請求項11】
前記ハードウェアは、前記機械学習モデルの演算のための複数の専用加速器を含み、
前記クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、
前記複数の専用加速器のうちで、前記作業負荷が割り当てられる少なくとも一つの専用加速器を識別するステップと、
前記識別された少なくとも一つの専用加速器に供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップと、を含む、請求項10に記載のハードウェア性能調節方法。
【請求項12】
前記機械学習モデルの推論演算に対する作業負荷を決定するステップは、
前記許容時間内に作業完了が可能な一つ以上の候補作業負荷を候補リストに登録するステップと、
前記候補リストのうちで、一つの候補作業負荷を前記推論演算に対する作業負荷として決定するステップと、を含み、
前記決定された作業負荷に含まれたバッチサイズを有する少なくとも一つの入力データが前記機械学習モデルに入力される、請求項8に記載のハードウェア性能調節方法。
【請求項13】
前記候補リストのうちで、一つの候補作業負荷を前記推論演算に対する作業負荷として決定するステップは、
前記一つ以上の候補作業負荷の各々と関連付けられた割当リソース及びバッチサイズに基づいて、前記一つ以上の候補作業負荷の各々に対する性能指標を算出するステップと、
前記算出された性能指標が最も高い候補作業負荷を前記推論演算に対する作業負荷として決定するステップと、を含む、請求項12に記載のハードウェア性能調節方法。
【請求項14】
前記候補リストのうちで、一つの候補作業負荷を前記推論演算に対する作業負荷として決定するステップは、
前記一つ以上の候補作業負荷の各々と関連付けられた割当リソース及びバッチサイズに基づいて、前記一つ以上の候補作業負荷の各々の遅延時間を算出するステップと、
前記算出された遅延時間が最も短い候補作業負荷を前記推論演算に対する作業負荷として決定するステップと、を含む、請求項12に記載のハードウェア性能調節方法。
【請求項15】
前記ハードウェアは、前記機械学習モデルの演算のための複数の専用加速器を含み、
前記複数の専用加速器の各々には、リソースが供給され、
前記方法は、
前記選択された少なくとも一つの入力データを前記機械学習モデルに入力するステップの以後に、
前記複数の専用加速器の各々に供給された後に残っている残存の可用リソースを測定するステップと、
前記複数の専用加速器のうちで、前記測定された残存の可用リソースを提供するためのターゲット専用加速器を決定するステップと、
前記決定されたターゲット専用加速器に、前記残存の可用リソースの一部又は全部を供給するステップと、をさらに含む、請求項8に記載のハードウェア性能調節方法。
【請求項16】
前記ターゲット専用加速器を決定するステップは、
一つ以上の専用加速器の各々に対する候補リソースを候補リストに登録するステップであって、前記候補リソースは、専用加速器に供給されるリソースよりも増加したリソースを有するステップと、
前記候補リストに登録された一つ以上の候補リソースのうち、一つの候補リソースと関連付けられた専用加速器を前記ターゲット専用加速器として決定するステップと、を含み、
前記残存の可用リソースの一部又は全部を供給するステップは、
前記ターゲット専用加速器と関連付けられた一つの候補リソースに基づいて、前記可用リソースの一部又は全部を前記ターゲット専用加速器に供給するステップを含む、請求項15に記載のハードウェア性能調節方法。
【請求項17】
前記候補リソースを候補リストに登録するステップは、
前記複数の専用加速器の各々に供給された後に残っている残存の電力量を測定するステップと、
前記一つ以上の専用加速器の各々に候補リソースを供給する場合、前記一つ以上の専用加速器の各々で要求される第1の電力量を算出するステップと、
前記一つ以上の専用加速器の各々に対し、前記算出された第1の電力量から、前記一つ以上の専用加速器の各々に供給中である第2の電力量を減算した第3の電力量を算出するステップと、
前記算出された第3の電力量が前記残存の電力量を超過する専用加速器を識別するステップと、
前記識別された専用加速器と関連付けられた候補リソースを前記候補リストから除去するステップと、を含む、請求項16に記載のハードウェア性能調節方法。
【請求項18】
前記一つの候補リソースと関連付けられた専用加速器を前記ターゲット専用加速器として決定するステップは、
前記一つ以上の専用加速器の各々に入力される少なくとも一つの入力データに対するバッチサイズ及び前記候補リストに含まれた候補リソースに基づいて、前記一つ以上の専用加速器の各々に対する追加性能指標を算出するステップと、
前記算出された追加性能指標が最も高い専用加速器を前記ターゲット専用加速器として決定するステップと、を含む、請求項16に記載のハードウェア性能調節方法。
【請求項19】
前記一つの候補リソースと関連付けられた専用加速器を前記ターゲット専用加速器として決定するステップは、
前記候補リストに含まれた候補リソースに基づいて、前記一つ以上の専用加速器の各々に追加される電力量を算出するステップと、
前記算出された電力量のうちで、最少の電力量を有する専用加速器を前記ターゲット専用加速器として決定するステップと、を含む、請求項16に記載のハードウェア性能調節方法。
【請求項20】
情報処理システムであって、
一つ以上のインストラクションを保存するメモリと、
前記メモリの一つ以上のインストラクションを実行することで、高頻度証券取引のための複数の入力データを獲得し、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷を決定し、前記決定された作業負荷に基づいて、前記複数の入力データのうちの少なくとも一つの入力データを選択し、前記選択された少なくとも一つの入力データを前記機械学習モデルに適用するように構成されたプロセッサと、を含む、情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、高頻度証券取引のためのハードウェア性能調節方法及びシステムに関し、具体的には、データトラフィック、機械学習の演算複雑度又はハードウェアの可用リソースのうちの少なくとも一つに基づいて、ハードウェア性能を調節する方法及びシステムに関する。
【背景技術】
【0002】
オンラインを介して、株式、債券、派生商品などのような有価証券が活発に取引されている。有価証券は価格が随時変動するため、取引者は、価格変動の事項をモニタリングして、目標値や損切り値に到達した有価証券の買い又は売りを行うことができる。このような有価証券の売買は、アルゴリズムを介して自動的に遂行されることもできる。
【0003】
また、微細な価格変動を予測して、短時間内に高頻度で取引を遂行する高頻度証券取引(high frequency trading)が有価証券市場で発生している。高頻度証券取引は、株式、債券、派生商品などのような有価証券の微細な価格変動を利用して、短時間内に高頻度(例えば、1秒に数百回から数千回)で取引する取引方式である。高頻度証券取引では迅速な処理が非常に重要である。一般に、入力された情報に基づいてトレーディングアルゴリズムを処理して出力するまでの時間を短縮するほど、取引で優位を占めることができる。
【0004】
一方、高頻度証券取引に機械学習モデルが利用される。機械学習モデルを利用した高頻度証券取引技法は、マーケットから得られる大量のデータを分析するため、特定種目の相場を予測するとき、古典的なアルゴリズムに比較してより多くの因子を考慮するだけでなく、相場予測の正確性も優れる。ただし、機械学習モデルを利用して多量のデータを分析するためには、機械学習モデルの演算に多くの保存空間及び処理資源が要求され得る。
【0005】
また、機械学習モデルにおいて、大量のデータに対する複雑な演算が要求されるため、機械学習モデルを利用するデータ量や演算複雑度等により、証券注文のための演算速度が変化し得る。例えば、データ量が少ないと、機械学習モデルの演算速度が速くなり、演算複雑度が高いと、機械学習モデルの演算速度が遅くなる。すなわち、データ量及び/又は演算複雑度により、機械学習モデルを含むシステムのスループット(throughput)及び/又は遅延時間(latency)が変化し得る。データ量が多くなるか、或いは、演算複雑度が高くなることにより注文データのための遅延時間が長くなる場合、高頻度証券取引における注文データの生成が遅延する恐れがある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】韓国公開特許第10-2001-0016454号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示は、前記問題点を解決するための高頻度証券取引のためのハードウェア性能調節方法、コンピュータプログラム及び装置(システム)を提供する。
【課題を解決するための手段】
【0008】
本開示によれば、方法、装置(システム)及び/又はコンピュータ読取り可能な保存媒体に保存されたコンピュータプログラムを含む多様な方式により具現化できる。
【0009】
本開示の一実施例によれば、少なくとも一つのプロセッサによって遂行される、高頻度証券取引のためのハードウェアの性能を調節する方法は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト(context)情報を受信するステップと、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定するステップと、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更するステップとを含むことができる。
【0010】
本開示の一実施例によれば、少なくとも一つのプロセッサによって遂行される、高頻度証券取引のためのハードウェアの性能を調節する方法は、高頻度証券取引のための複数の入力データを獲得するステップと、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷(workload)を決定するステップと、決定された作業負荷に基づいて、複数の入力データのうちの少なくとも一つの入力データを選択するステップと、選択された少なくとも一つの入力データを機械学習モデルに適用するステップとを含むことができる。
【0011】
本開示の一実施例に係るハードウェアの性能を制御する方法をコンピュータで実行するためのコンピュータプログラムが提供される。
【0012】
本開示の一実施例によれば、情報処理システムは、一つ以上のインストラクションを保存するメモリと、メモリの一つ以上のインストラクションを実行することで、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト情報を受信し、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定し、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更するように構成されたプロセッサとを含むことができる。
【0013】
本開示の一実施例によれば、情報処理システムは、一つ以上のインストラクションを保存するメモリと、メモリの一つ以上のインストラクションを実行することで、高頻度証券取引のための複数の入力データを獲得し、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷を決定し、決定された作業負荷に基づいて、複数の入力データのうちの少なくとも一つの入力データを選択し、選択された少なくとも一つの入力データを機械学習モデルに適用するように構成されたプロセッサとを含むことができる。
【発明の効果】
【0014】
本開示の一部の実施例によれば、高性能が要求される時期にハードウェアに多量のリソースを供給できる。これにより、ハードウェアのスループットが向上して、注文データの生成のための演算を遅延なしに迅速に遂行できる。
【0015】
本開示の一部の実施例によれば、マーケットデータのトラフィック、又は、機械学習モデルの演算複雑度のうちの少なくとも一つを含むコンテクスト情報に基づいて、ハードウェアの処理性能を変更すべきリソース、変更すべき時期などを正確に予測できる。
【0016】
本開示の一部の実施例によれば、複数の専用加速器のうち、負荷が多い専用加速器により多くのリソースが割り当てられることで、負荷が集中した専用加速器によって注文データの生成が遅延する現像を防止できる。
【0017】
本開示の一部の実施例によれば、特定数値以上の性能でハードウェアが既定の期間を超過して動作することが制限されることで、能力値を超過したハードウェアが継続動作する場合に発生し得るハードウェアの障害現像を最小化又は除去できる。
【0018】
本開示の一部の実施例によれば、機械学習モデルの推論演算に対する最適の作業負荷(workload)が決定され、決定された作業負荷に基づいたバッチサイズ(batch size)を有する少なくとも一つの入力データが機械学習モデルに適用され得る。これにより、許容時間内の高頻度証券取引のための最大個数又は最大量の注文データが生成され得る。
【0019】
本開示の一部の実施例によれば、一つ以上の専用加速器にリソースが供給された後に残っている残存の可用リソースがある場合、最大の性能を発揮すべき専用加速器に残存の可用リソースを供給できる。これにより、残存の可用リソースを無駄にしないと共に、高頻度証券取引を遂行するシステムの性能を効果的に発揮できる。
【0020】
本開示の一部の実施例によれば、作業スケジューリングの遂行前に、許容範囲内における最少のリソースを専用加速器に供給できる。これにより、作業スケジューリングの遂行前にハードウェアの可用リソースが最大に集まることになり、最大に集まった可用リソースを利用することで、効果的な高頻度注文のための作業スケジューリングを遂行できる。
【0021】
本開示の効果は、これに制限されず、言及されない他の効果等は、請求範囲の記載から本開示が属する技術分野における通常の知識を有した者(以下、「当業者」という)に明確に理解されるべきである。
【図面の簡単な説明】
【0022】
本開示の実施例等は、以下の添付図面に基づいて説明される。ここで、類似の参照符号は類似の要素を示すが、これに限定されるものではない。
図1】本開示の一実施例に係る情報処理システムの作動例を示す概要図である。
図2】本開示の一実施例に係る情報処理システムの内部構成を示すブロック図である。
図3】本開示の一実施例に係るプロセッサの内部構成を示す図である。
図4】本開示の一実施例に係る機械学習モデルが入力データに基づいて出力データを出力する例を示す図である。
図5】本開示の一実施例に係る機械学習モデルの入力データの構成の例を示す図である。
図6】本開示の一実施例に係る人工神経網モデルの例を示す図である。
図7】本開示の一実施例に係る情報処理システムの内部構成の例を示す図である。
図8】本開示の他の実施例に係る情報処理システムの内部構成の例を示す図である。
図9】本開示の一実施例に係るハードウェアリソース制御に利用される多様な参照テーブルの例を示す図である。
図10】本開示の一実施例に係る高頻度証券取引のためにハードウェア性能を動的に調節する方法を説明するためのフローチャートである。
図11】本開示の一実施例に係るハードウェアに最少のリソースが供給される方法を説明するためのフローチャートである。
図12】本開示の一実施例に係る高頻度証券取引のための作業スケジューリング方法を説明するためのフローチャートである。
図13】本開示の一実施例に係る図12のステップS1220をより詳細に説明するためのフローチャートである。
図14】本開示の一実施例に係る可用リソースがNPUに追加的に供給される方法を説明するためのフローチャートである。
図15】本開示の一実施例に係る証券取引生成と関連付けられた任意のコンピューティング装置の構成図である。
【発明を実施するための形態】
【0023】
<発明の概要>
本開示の一実施例によれば、リソースを変更するステップは、ハードウェアに供給されるクロックの速度又は電圧のうちの少なくとも一つを変更するステップを含むことができる。
【0024】
また、処理性能を変更するか否かを判定するステップは、受信されたコンテクストに基づいて、ハードウェアに要求される処理性能を決定するステップを含み、リソースを変更するステップは、決定されたハードウェアの処理性能によって、ハードウェアに供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップを含むことができる。
【0025】
また、ハードウェアは、機械学習モデルの演算のための複数の専用加速器を含み、クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、複数の専用加速器のうちで、決定された処理性能に基づいて一つ以上の専用加速器を識別するステップと、識別された一つ以上の専用加速器に供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップとを含むことができる。
【0026】
また、ハードウェアは、専用加速器、メモリ又はプロセッサのうちの少なくとも一つを含み、専用加速器、メモリ又はプロセッサのうちの少なくとも一つは、機械学習モデルに含まれた複数のレイヤと関連付けられた複数の処理領域に区画され、クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、複数の処理領域のうちで、決定された処理性能に基づいて一つ以上の処理領域を識別するステップと、識別された一つ以上の処理領域に供給されるクロックの速度又は電圧のうちの少なくとも一つを調節するステップとを含むことができる。
【0027】
また、クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、決定された処理性能に対応する目標クロックの速度をハードウェアに供給するために、複数のクロックソースの一つ以上のクロックソースが活性化するように制御するステップを含むことができる。
【0028】
また、クロックの速度又は電圧のうちの少なくとも一つを調節するステップは、決定された処理性能に対応する目標電圧をハードウェアに供給するために、複数の電圧ソースの一つ以上の電圧ソースが活性化するように制御するステップを含むことができる。
【0029】
また、処理性能を変更するか否かを判定するステップは、コンテクスト情報に基づいてマーケットデータを処理するのに要求されるハードウェアの性能等級を決定するステップと、決定された性能等級が以前に決定された性能等級と異なる場合、ハードウェアの処理性能の変更が要求されると判定するステップとを含むことができる。
【0030】
また、ハードウェアの性能を制御する方法は、リソースを変更するステップの以後に、変更されたリソースが既定の閾値以上であるか否かを判定するステップと、変更されたリソースが既定の閾値以上である場合、変更されたリソースが供給される時間を測定するステップと、測定された時間が閾時間に到達すれば、閾値よりも低いリソースがハードウェアに供給されるように制御するステップとをさらに含むことができる。
【0031】
また、コンテクスト情報を受信するステップは、単位時間当りのマーケットデータの受信回数、又は、単位時間当り受信されたマーケットデータの容量のうちの少なくとも一つに基づいて識別されたトラフィックを受信するステップを含むことができる。
【0032】
また、ハードウェアは、データ前処理のためのプロセッサを含み、データ前処理のためのプロセッサは、データ前処理部を含み、処理性能を変更するか否かを判定するステップは、受信されたトラフィックが既定の閾値以上である場合、データ前処理部に対する処理性能の変更が要求されると判定できる。
【0033】
また、コンテクスト情報を受信するステップは、ハードウェアの負荷又は機械学習モデルの演算に利用されるパラメーターの大きさのうちの少なくとも一つに基づいて測定された演算複雑度を受信するステップを含むことができる。
【0034】
また、ハードウェアは機械学習モデルの演算のための加速器を含み、加速器は演算モジュールを含み、処理性能を変更するか否かを判定するステップは、受信された演算複雑度が既定の閾値以上である場合、演算モジュールに対する処理性能の変更が要求されると判定するステップを含むことができる。
【0035】
<発明の詳細な説明>
以下、本開示の実施のための具体的な内容を添付図面に基づいて詳細に説明する。ただし、以下の説明では、本開示の要旨を不要に不明瞭にする恐れがある場合、公知の機能や構成に関する具体的な説明を省略する。
【0036】
添付図面において、同一又は対応する構成要素には同一の参照符号が付与される。また、以下の実施例の説明において、同一又は対応する構成要素について重複する記述を省略することがある。しかしながら、構成要素に関する記述を省略しても、そのような構成要素が、ある実施例に含まれないものと意図するものではない。
【0037】
開示の実施例の利点及び特徴、そして、それらを達成する方法は、添付図面に基づいて、後述する実施例を参照すれば明確になる。しかしながら、本開示は、以下で開示される実施例に限定されず、互いに異なる多様な形態で具現化され得る。単に、本実施例は、本開示が完全になるようにし、本開示を当業者に発明のカテゴリを正確に認識させるために提供されるだけである。
【0038】
本開示で使用される用語について簡略に説明し、開示の実施例について具体的に説明する。本明細書で使用される用語については、本開示での機能を考慮しつつ、可能な限り現在広く使用される一般的な用語を選択したが、これは、関連分野に従事する技術者の意図又は判例、新技術の出現などにより変化し得る。また、特定の場合には、出願人が任意で選定した用語もあり得るが、これらの意味については当該発明の説明の部分において詳細に記載する。よって、本開示で使用される用語は、単純な用語の名称ではなく、その用語が持つ意味と本開示の全般にわたる内容に基づいて定義されるべきである。
【0039】
本開示において、文脈上において明確に特定しない限り、単数の表現は複数の表現を含み、複数の表現は単数の表現を含み得る。明細書の全般にわたり、ある部分がある構成要素を「含む」とすれば、これは、特に反対の記載がない限り、他の構成要素を排除するものではなく、他の構成要素をさらに含むこともできることを意味する。
【0040】
また、明細書で使用される「モジュール」又は「部」という用語は、ソフトウェアやハードウェア構成要素を意味し、「モジュール」又は「部」はある役割を遂行する。しかしながら、「モジュール」又は「部」はソフトウェアやハードウェアに限定される意味ではない。「モジュール」又は「部」は、アドレッシング可能な保存媒体にあるように構成してもよく、一つ又はそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として、「モジュール」又は「部」は、ソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素、タスク構成要素のような構成要素、並びに、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバー、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、又は変数のうちの少なくとも一つを含むことができる。構成要素及び「モジュール」又は「部」は、内部で提供される機能はさらに小さい数の構成要素及び「モジュール」又は「部」で結合され、または、追加的な構成要素及び「モジュール」又は「部」にさらに分離され得る。
【0041】
本開示の一実施例によれば、「モジュール」又は「部」は、プロセッサ及びメモリで具現化され得る。「プロセッサ」は、汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境では、「プロセッサ」は、特定用途向け半導体(ASIC)、プログラム可能なロジックデバイス(PLD)、フィールドプログラム可能なゲートアレイ(FPGA)等を称することもできる。例えば、特定用途向け半導体は、神経網処理装置(NPU)などを含むことができる。「プロセッサ」は、例えば、CPU、NPU及びFPGAの組合せ、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサの組合せ、DSPコアと結合した一つ以上のマイクロプロセッサの組合せ、若しくは、任意の他のそのような構成等の組合せといった処理デバイスの組合せを称することもできる。また、「メモリ」は、電子情報を保存可能な任意の電子コンポーネントを含むように、広く解釈されるべきである。「メモリ」は、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non-Volatile Random Access Memory)、PROM(Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Reda-Only Memory)、フラッシュメモリ、磁気又は光学データストレージ装置、レジスタなどのようなプロセッサで読取り可能な媒体の多様な類型を称することもできる。プロセッサがメモリから情報を読取り/読取ったメモリに情報を記録できる場合、メモリは、プロセッサと電子通信状態にあると言われる。プロセッサに集積されたメモリは、プロセッサと電子通信状態にある。
【0042】
本開示において、「システム」は、サーバー装置及びクラウド装置のうちの少なくとも一つを含むことができるが、これに限定されるものではない。例えば、システムは、一つ以上のサーバー装置からなることができる。他の例として、システムは、一つ以上のクラウド装置からなることができる。また他の例として、システムは、サーバー装置及びクラウド装置の全部からなって動作することもできる。また他の例として、システムは、高頻度証券注文のためのクライアント装置であり得る。
【0043】
また、以下の実施例等で使用される第1、第2、A、B、(a)、(b)などのような用語は、ある構成要素を他の構成要素と区別するために使用されるだけで、その用語により当該構成要素の本質や順序などが限定されるものではない。
【0044】
また、以下の実施例等において、ある構成要素が他の構成要素に「連結」、「結合」または「接続」されると記載された場合、その構成要素は、他の構成要素に直接的に連結または接続され得るが、各構成要素間にまた他の構成要素が「連結」、「結合」または「接続」されることもできると理解されなければならない。
【0045】
また、以下の実施例等で使用される「含む(comprises)」及び/又は「含む(comprising)」は、言及された構成要素、ステップ、動作及び/又は素子は一つ以上の他の構成要素、ステップ、動作及び/又は素子の存在または追加を排除しない。
【0046】
本開示において、「複数のAの各々」は、複数のAに含まれた全ての構成要素の各々を称したり、複数のAに含まれた一部の構成要素の各々を称したりできる。
【0047】
本開示において、「ハードウェア」とは、高頻度証券取引方法を実施するために使用される任意の装置を称し、例えば、中央処理装置(例えば、CPUなど)、リプログラミング又は再設計が可能なプロセッサ(例えば、FPGA)、加速器(例えば、NPUやGPUなど)、メモリなどを含むことができるが、これに限定されるものではない。このようなハードウェアは、情報処理システムに含まれたり、情報処理システムにより接近されたりできる。
【0048】
本開示において、「リソース(resource)」は、ハードウェアを動作させるためにハードウェアに供給される任意の資源を称することができ、例えば、電圧、クロック周波数などを含むことができる。
【0049】
本開示において、「種目」とは、証券市場で売買取引の対象となる株式、債券、派生商品(オプションや先物など)のような有価証券を内容及び形式によって分類したものを称することができる。種目は、個別種目以外に、指数関連種目、産業セクター関連種目、特定商品(例えば、原油、農産物、金など)に対する種目、為替関連種目などを含むこともできる。
【0050】
本開示において、「証券取引所」とは、少なくとも一つの国で流通する有価証券が流通している所であって、各企業や政府などが発行した有価証券を上場して取引できるように仲介する所を称することができる。一実施例において、証券取引所は、証券取引所のシステムを含むことができる。
【0051】
本開示において、「オーダーブック(Order Book、OB)」は、証券市場に存在する買い希望者及び売り希望者の買い注文又は売り注文(呼値、数量、買い希望者又は売り希望者の情報など)に関する情報を記録したリストを含むことができる。
【0052】
本開示において、「オーダーブック上段(Top of the Book、ToB)」は、最高の買い値及び最低の売り値に関する情報を含むことができる。
【0053】
本開示において、「マーケットデータ」は、証券取引所で取引される種目等に対するデータを含むことができる。例えば、マーケットデータは、証券取引所で取引される種目等(少なくとも一部)のオーダーブック、公示、ニュースなどを含むことができる。
【0054】
本開示において、「機械学習モデル」は、与えられた入力に対する解答(answer)を推論するのに使用する任意のモデルを含むことができる。一実施例によれば、機械学習モデルは、入力層(layer)、複数個の隠れ層及び出力層を含む人工神経網モデルを含むことができる。ここで、各層は複数のノードを含むことができる。また、本開示において、機械学習モデルは、人工神経網モデルを称することができ、人工神経網モデルは、機械学習モデルを称することができる。
【0055】
本開示において、「インストラクション(instruction)」は、機能に基づいて集まる一連のコンピュータ読取り可能な命令語であって、コンピュータプログラムの構成要素であり、プロセッサにより実行されるものを称することができる。
【0056】
本開示において、「コンテクスト(context)情報」は、注文データを生成するのに使用されるデータ量、データ発生頻度、ハードウェア負荷、システム環境などに関連付けられた任意の情報を称することができる。例えば、コンテクスト情報は、マーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むことができる。
【0057】
以下、添付図面に基づいて、本開示の多様な実施例等を詳細に説明する。
【0058】
図1は、本開示の一実施例に係る情報処理システム110の作動例を示す概要図である。一実施例によれば、情報処理システム110は、マーケットデータに基づいて一つ以上の未来時点(近い未来時点、例えば、既定の時間後)の市場状況を予測でき、これに基づいてターゲット種目に対する注文を生成して、ターゲット証券取引所(第2の証券取引所)に転送できる。高頻度証券取引において、マーケットデータに基づいて迅速に注文を生成して転送することが非常に重要である。これにより、高頻度証券取引では、マイクロ秒(microsecond)単位の遅延時間(latency)まで考慮しなければならず、遅延時間を減少させるために、情報処理システム110は、ターゲット証券取引所(第2の証券取引所)のサーバーの近傍に位置(colocation)し得る。
【0059】
一実施例によれば、情報処理システム110は、第1の証券取引所120からマーケットデータを受信できる。付加的又は代替的に、情報処理システム110は、第1の証券取引所120以外にウェブサイト又はアプリケーションからマーケットデータを受信できる。ここで、ウェブサイト又はアプリケーションは、一つ以上の取引所で発生するマーケットデータを取りまとめるサイト又はアプリケーションであり得、或いは、私設会社が独自に運営するサイト又はアプリケーションであり得る。マーケットデータは、複数の種目に対するオーダーブック、公示、ニュースなどを含むことができる。一実施例において、マーケットデータは、ターゲット種目に対するデータを含むことができる。例えば、マーケットデータは、ターゲット種目のオーダーブック上段、ターゲット種目に対する(有効な)注文リスト、ターゲット種目に関する以前の注文に対する第1の証券取引所120の応答などを含むことができる。
【0060】
マーケットデータは、一定間隔の間に動的に受信することができる。すなわち、証券市場環境に応じて、単位時間の間に情報処理システム110から受信されるマーケットデータの大きさ又は個数は異なることができる。例えば、証券市場の変動が大きいと、単位時間の間に受信されるマーケットデータの大きさが大きかったり、データの個数が多かったりできる。すなわち、証券市場の変動性が大きくなると、オーダーブックの変動の大きさ又は回数も増加して、これにより、単位時間当りの情報処理システム110から受信されるマーケットデータの大きさ又は個数も多くなる。
【0061】
図1において、第1の証券取引所120は、一つの証券取引所のように示されるが、これは説明の便宜のためのもので、第1の証券取引所120は、一つ以上の証券取引所を含むこともできる。また、図1において、第1の証券取引所120は、第2の証券取引所130と異なる別個の取引所のように示されるが、これも説明の便宜のためのもので、第1の証券取引所120が第2の証券取引所130を含むか、或いは、第2の証券取引所130が第1の証券取引所120を含むこともできる。
【0062】
一実施例によれば、情報処理システム110は、マーケットデータを分析して注文を生成できる。例えば、情報処理システム110は、マーケットデータに基づいて生成されたデータ及び/又はマーケットデータを分析して、一つ以上の未来時点(例えば、n秒後、ここで、nは正の実数である)における市場状況(例えば、ターゲット種目の価格)を予測し、これに基づいて注文を生成できる。ここで、マーケットデータに基づいて生成されたデータ及び/又はマーケットデータを分析する過程は、機械学習モデル(例えば、DNNなど)により遂行することができる。
【0063】
一方、高頻度証券取引においてマーケットデータを迅速に分析して注文を生成することが非常に重要であるが、一般のプロセッサの場合、機械学習モデルの複雑且つ大量の演算を支援するための保存空間及び演算資源を保有していないため、一般のプロセッサを利用して機械学習モデルを駆動する場合、処理速度及び/又は効率が低下するという問題点がある。よって、本開示の一実施例に係る情報処理システム110は、機械学習モデルのための専用加速器(例えば、ニューラルプロセッシングユニット(Neural Processing Unit、NPU))を含むことができ、専用加速器は、ニューラルプロセッシングユニットのための集積回路(例えば、Application-Specific Integrated Circuit、ASIC)で具現化することができる。
【0064】
一方、機械学習モデルを利用するために、適切な前/後処理過程を必要とすることができる。例えば、マーケットデータから機械学習モデルのための入力データを生成したり、機械学習モデルから出力されたデータに基づいて注文データを生成したりする過程を必要とすることができる。このような前/後処理過程は、市場状況、規律、マーケットメーカーに対する補償規定などの変化によって持続的に変更され得る。このような前/後処理過程を処理するプロセッサを、特定用途向け半導体(例えば、ASIC)で具現化する場合、再設計が不可能であるため、前/後処理過程が変更されると、変更された前/後処理過程を遂行するためのプロセッサを再製作しなければならないという問題点がある。よって、機械学習モデルの駆動を除いた過程は、リプログラミング及び/又は設計変更が可能なプロセッサ(例えば、フィールドプログラム可能なゲートアレイ(Field Programmable Gate Array、FPGA)で具現化されたプロセッサ)により遂行することができる。
【0065】
前述したように、機械学習モデルを駆動するプロセッサは、専用加速器(例えば、ASICで具現化された専用加速器)からなることで、迅速かつ效率的に機械学習モデルの演算を処理できる。また、前/後処理過程は、リプログラミング又は再設計が可能なプロセッサ(例えば、FPGA)を利用して処理することで、継続的に変化する市場状況に応じて柔軟に前/後処理過程を変更することができる。このように、高頻度証券取引を処理するのに適合する異なる二つ以上のプロセッサを使用することで、柔軟な前/後処理過程の具現化と、迅速かつ効率的な機械学習モデルの演算処理とを同時に実現できる。
【0066】
図2は、本開示の一実施例に係る情報処理システム110の内部構成を示すブロック図である。情報処理システム110は、メモリ210、プロセッサ220、通信モジュール230及び入出力インタフェース240を含むことができる。図2に示すように、情報処理システム110は、通信モジュール230を用いて、ネットワークを介して情報及び/又はデータを通信できるように構成することができる。
【0067】
メモリ210は、非一時的な任意のコンピュータ読取り可能な記録媒体を含むことができる。一実施例によれば、メモリ210は、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)及びフラッシュメモリ(flash memory)などのような永久的な大容量ストレージ装置(permanent mass storage device)を含むことができる。他の例として、ROM、SSD、フラッシュメモリ及びディスクドライブなどのような永久的な大容量ストレージ装置は、メモリとは区分される別途の永久ストレージ装置として情報処理システム110に含まれることができる。また、メモリ210には、オペレーティングシステムと少なくとも一つのプログラムコード(例えば、情報処理システム110に設置されて駆動される機械学習モデルの演算処理、前/後処理、証券注文転送などのためのコード)が保存され得る。図2において、メモリ210は単一のメモリとして示されるが、これは説明の便宜のためのもので、メモリ210は複数のメモリを含むこともできる。例えば、プロセッサ220が複数のプロセッサを含む場合、メモリ210は、複数のプロセッサの各々と連結されて処理される一つ以上のメモリを含むことができる。他の例として、プロセッサ220が複数のプロセッサを含む場合、複数のプロセッサと連結されて処理される複数のメモリを含むことができる。
【0068】
このようなソフトウェア構成要素は、メモリ210とは別途のコンピュータ読取り可能な記録媒体からローディングすることができる。このような別途のコンピュータ読取り可能な記録媒体は、このような情報処理システム110に直接連結可能な記録媒体を含むことができ、例えば、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、及びメモリカードなどのようなコンピュータ読取り可能な記録媒体を含むことができる。他の例として、ソフトウェア構成要素等は、コンピュータ読取り可能な記録媒体ではなく、通信モジュール230を介して、メモリ210にローディングされることもできる。例えば、少なくとも一つのプログラムは、開発者又はアプリケーションの設置ファイルを配信するファイル配信システムが、通信モジュール230を介して提供するファイルにより設置されるコンピュータプログラム(例えば、マーケットデータ分析、未来市場予測、証券注文生成及び転送などのためのプログラム等)に基づいて、メモリ210にローディングすることができる。
【0069】
プロセッサ220は、基本的な算術、ロジック及び入出力演算を遂行することで、コンピュータプログラムの命令を処理するように構成することができる。命令は、メモリ210又は通信モジュール230により、ユーザ端末(図示せず)又は他の外部システムに提供され得る。例えば、プロセッサ220は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト情報を受信し、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定できる。さらに、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更できる。また、プロセッサ220は、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷(workload)を決定し、決定された作業負荷に基づいて、複数の入力データから少なくとも一つの入力データを抽出できる。ここで、ハードウェアの可用リソースは、全体リソースのうちで、作業負荷を処理するのに使用できるリソースであり得る。例えば、可用リソースは、全体リソースのうちで、ハードウェアに供給した後に残っている残存のリソースであり得る。また、プロセッサ220は、抽出された少なくとも一つの入力データを機械学習モデルに適用できる。さらに、プロセッサ220は、許容時間及びハードウェアの可用リソースに基づいて、作業負荷を処理するためのハードウェアのリソースを決定し、決定されたリソースをハードウェアに供給できる。
【0070】
通信モジュール230は、ネットワークを介して、ユーザ端末(図示せず)と情報処理システム110とが互いに通信するための構成や機能を提供でき、情報処理システム110が外部システム(例えば、別途のクラウドシステムなど)と通信するための構成や機能を提供できる。一例として、情報処理システム110のプロセッサ220の制御によって提供される制御信号、命令、データなどが、通信モジュール230及びネットワークを経て、ユーザ端末及び/又は外部システムの通信モジュールを介して、ユーザ端末及び/又は外部システムに転送され得る。例えば、外部システム(例えば、証券取引所システム)は、情報処理システム110から注文データなどを受信できる。
【0071】
また、情報処理システム110の入出力インタフェース240は、情報処理システム110と連結されるか、或いは、情報処理システム110が含むことのできる入力又は出力のための装置(図示せず)とのインタフェースのための手段であり得る。例えば、入出力インタフェース240は、PCI express(登録商標)インタフェースやイーサネット(登録商標)(ethernet(登録商標))インタフェースのうちの少なくとも一つを含むことができる。図2では、入出力インタフェース240がプロセッサ220と別途に構成された要素として示されるが、これに限定されず、入出力インタフェース240がプロセッサ220に含まれるように構成することもできる。情報処理システム110は、図2の構成要素よりも多くの構成要素を含むことができる。
【0072】
情報処理システム110のプロセッサ220は、複数のユーザ端末及び/又は複数の外部システムから受信された情報及び/又はデータを管理、処理及び/又は保存するように構成することができる。一実施例によれば、プロセッサ220は、コンテクスト情報を受信し、このようなコンテクスト情報に基づいてハードウェアに対する処理性能を変更するか否かを判定し、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更できる。ここで、プロセッサ220は、中央処理装置(Central Processing Unit)を含むことができる。また、ハードウェアは、情報処理システム110に含まれたプロセッサ220及び/又はメモリ210を含むことができるが、例えば、プロセッサ220は、前処理及び後処理のためのFPGAで具現化された少なくとも一つのプロセッサ、機械学習モデルのためのASICで具現化された一つ以上の専用加速器及びリソース制御のためのプロセッサをさらに含むことができる。また、メモリ210は、中央処理装置、FPGA及び専用加速器の各々によりアクセス可能な一つ以上のメモリを含むことができる。図2では、情報処理システム110にメモリ210、プロセッサ220及び通信モジュール230が別途に具現化されたものと示されるが、これに限定されず、メモリ210の少なくとも一部及び/又は通信モジュール230の少なくとも一部が、プロセッサ220に含まれるように具現化されることもできる。
【0073】
図3は、本開示の一実施例に係るプロセッサ300の内部構成を示す図である。図3において、プロセッサ300は、ボード(board)状で具現化されたものを例示している。例えば、情報処理システム110のプロセッサ220は、図3のプロセッサ300を含むことができる。また、中央処理装置(CPU)が情報処理システム110のプロセッサ220にさらに含まれることもできる。
【0074】
一実施例によれば、プロセッサ300は、データ前/後処理のための少なくとも一つのプロセッサ320、機械学習モデルのための専用加速器(例えば、ASICで具現化された専用加速器)340及び少なくとも一つのメモリ360を含むことができる。説明の便宜上、図3では、データ前/後処理のための少なくとも一つのプロセッサ320はFPGA(320)であり、機械学習モデルのための専用加速器340はNPU(340)であるとして説明する。
【0075】
FPGA(320)は、データ受信部322、データ前処理部324及び注文生成部326を含むことができる。また、NPU(340)は、ローディングモジュール342、演算モジュール344及び転送モジュール346を含むことができる。図3において、プロセッサ300の内部構成を機能別に区分して説明しているが、これは、必ずしも物理的な区分を意味するものではない。また、図3に示すFPGA(320)及びNPU(340)の内部構成は、例示に過ぎず、必須構成だけを示すものではない。
【0076】
一実施例によれば、FPGA(320)のデータ受信部322は、一つ以上のターゲット種目に対して、一つ以上の証券取引所(例えば、第1の証券取引所や第2の証券取引所など)、ウェブサイト、アプリケーションなどからマーケットデータを受信できる。一実施例において、一つ以上の証券取引所は、ターゲット証券取引所を含むことができる。ここで、ターゲット証券取引所は、注文データを転送する目的地であって、注文データに基づいて証券の売り又は買いを進行できる。
【0077】
マーケットデータは、一つ以上の証券取引所で取引される種目等に関するデータを含むことができる。例えば、マーケットデータは、証券取引所で取引される種目等(少なくとも一部)のオーダーブックを含むことができ、付加的に、マーケットデータはターゲット種目に関するデータを含むことができる。例えば、マーケットデータは、ターゲット種目のオーダーブック上段、ターゲット種目に対する(有効な)注文リスト、ターゲット種目に関する以前の注文に対するターゲット証券取引所の応答などを含むことができる。
【0078】
データ受信部322は、証券取引所又はウェブサイトからマーケットデータを受信できる。一方、証券市場及び/又はターゲット証券の変動幅が大きい場合、マーケットデータの受信回数が多くなったり、マーケットデータの大きさが大きくなったりでき、証券市場及び/又はターゲット証券の変動幅が小さい場合、マーケットデータの受信回数が少なくなったり、マーケットデータの大きさが小さくなったりできる。例えば、ターゲット種目の価格変動幅が大きい場合、データ受信部322は、ターゲット種目のオーダーブックを含むマーケットデータを単位時間の間により多くの回数で受信できる。反対に、ターゲット種目の価格変動幅が小さい場合、データ受信部322は、ターゲット種目のオーダーブックを含むマーケットデータを単位時間の間に少ない回数で受信できる。すなわち、ターゲット種目に対する価格変動幅が大きい場合、ターゲット種目に対するマーケットデータの受信トラフィックが増加し得る。
【0079】
高頻度証券取引では、迅速にデータを処理することが重要であるため、マーケットデータは、データ転送速度が速いユーザデータグラムプロトコル(User Datagram Protocol、UDP)を介して受信することができる。ただし、一部の実施例では、必要に応じて(例えば、データの信頼度を確保するために)、マーケットデータの受信に他の通信プロトコル(例えば、TCP/IP)を使用することもできる。
【0080】
データ前処理部324は、受信された一つ以上のマーケットデータに基づいて機械学習モデルに対する入力データを生成できる。一実施例によれば、データ前処理部324は、マーケットデータの一つ以上の種目に対する一つ以上の入力特徴を選別して入力データを構成できる。すなわち、データ前処理部324により一つ以上のマーケットデータが前処理され、前処理されたマーケットデータに基づいて入力データを構成することができる。例えば、データ前処理部324は、入力データに含まれる入力特徴を抽出又は選別するための特徴抽出部を含むことができる。データ前処理部324により生成された複数の入力データは、キュー(queue)に保存することができる。
【0081】
一実施例において、入力データに含まれる一つ以上の種目は、ターゲット種目の市場状況変動の先行指標となる種目を含むことができる。例えば、注文の対象となるターゲット種目が、A社株式(現物)種目である場合、A社株式と関連付けられた先物種目、A社株式と関連付けられたオプション種目、他の取引所に含まれたA社関連種目、A社と関連付けられた商品(例:原油など)に関する先物種目などに対するデータが入力データに含まれることができる。また、一実施例において、入力データに含まれる一つ以上の入力特徴は、ターゲット種目の市場状況予測に有意味な情報を含むことができる。例えば、入力特徴は、市場価格(取引価格)、買い手のオーダーブック上段の価格や数量、売り手のオーダーブック上段の価格や数量、買い希望者の数、売り希望者の数、オーダーブック上段の次のステップの買い呼値、オーダーブック上段の次のステップの売り呼値、オーダーブックに含まれた呼値の分散など、一つ以上の種目のオーダーブックから抽出できる様々な情報、これを加工した情報及び/又は情報の信頼度などを含むことができる。入力データの構成は、図5を参照し詳細に後述する。
【0082】
データ前処理部324により生成された入力データは、機械学習モデルのための専用加速器のNPU(340)に転送されて、機械学習モデル(例えば、DNN)に入力されることができる。一実施例によれば、NPU(340)は、機械学習モデルの駆動のために特化した特定用途向け半導体(ASIC)として具現化することができる。NPU(340)では、機械学習モデルに入力データを入力することに応じて、ターゲット種目に関する予測データが得られる。例えば、NPU(340)は、機械学習モデルに入力データを入力して、一つ以上の未来時点のターゲット種目の価格(例えば、市場価格)を予測した出力データを導出できる。ターゲット種目に対する注文と関連付けられた出力データを導出する機械学習モデルについては、図4乃至図6を参照して詳細に後述する。図3では、機械学習モデルのための加速器が専用加速器(NPU)として示されるが、これに限定されず、機械学習モデルのための任意の加速器(例:GPUなど)を使用することもできる。
【0083】
注文生成部326は、機械学習モデルから出力された予測データを受信でき、予測データに基づいてターゲット証券取引所での注文データを生成できる。例えば、注文生成部326は、機械学習モデルから推論された未来時点でのターゲット種目の価格変動予測及び/又は予測価格に基づいて、既定の政策によってターゲット種目に対する注文データを生成できる。具体例として、ターゲット種目の価格が上昇すると予測される場合、注文生成部326は、直ぐに新規の買い注文を生成したり、既存の売り注文の呼値を訂正したりできる。一実施例によれば、注文データは、ターゲット種目に対する注文の種類(新規注文、注文取消、訂正注文)、買い又は売りの可否、価格(呼値)、数量などに関する情報を含むことができる。
【0084】
メモリ360は、複数のプロセッサにより共有されるメモリであり得る。例えば、メモリ360は、複数のNPU(340)により共有されるメモリであり得る。付加的又は代替的に、メモリ360は、FPGA(320)及びNPU(340)により共有されることもできる。DMA(Direct Memory Access)を用いて、複数のプロセッサによりメモリ360を共有できる。DMAに基づいてメモリ360を共有するために、DMAコントローラ(図示せず)がボードに載置されることができる。一実施例によれば、既定の個数のNPU(340)が一つのメモリ360を共有でき、NPU(340)の個数が増加する場合、増加した個数に比例する個数のメモリ360が載置されることができる。メモリ360は、入力データの一部又は全部を保存(ローディング)できる。また、メモリ360は、機械学習モデルの演算に利用される複数のパラメーターをローディングできる。複数のパラメーターは、機械学習モデルの演算過程において交替又は更新され得る。図3では、メモリ360がNPU(340)の外部にあるものを例示しているが、メモリ360は、NPU(340)と一つのチップ形態で具現化されることもできる。
【0085】
NPU(340)のローディングモジュール342は、FPGA(320)のデータ前処理部324から受信した入力データの一部又は全部をメモリ360にローディングできる。例えば、ローディングモジュール342は、機械学習モデルの演算に必要なデータを入力データから得て、得られたデータをメモリ360にローディングできる。一実施例によれば、キュー(queue)に保存された入力データの一部又は全部をメモリ360にローディングできる。ローディングモジュール342は、NPU(340)に割り当てられたバッチサイズ(batch size)に相当する、少なくとも一つの入力データをキューから抽出して、メモリ360にローディングできる。
【0086】
演算モジュール344は、メモリ360にローディングされたデータを機械学習モデルに入力することで、ターゲット種目に対する予測データを生成するための機械学習モデルの演算を遂行できる。
【0087】
NPU(340)が複数である場合、各々のNPU(340)は、機械学習モデルに含まれた複数のレイヤと関連付けられた複数の処理領域に区画することができる。このような場合、演算モジュール344は、機械学習モデルの全体演算の一部を遂行できる。例えば、機械学習モデルが複数のレイヤを有する人工神経網モデルを含む場合、第1のNPUに含まれた第1の演算モジュールは第1のレイヤに対する演算を遂行し、第2のNPUに含まれた第2の演算モジュールは第2のレイヤに対する演算を遂行できる。演算モジュール344は、NPU(340)に含まれた演算器を含むことができる。
【0088】
NPU(340)の転送モジュール346は、演算モジュール344から出力された演算結果(例えば、ターゲット種目に対する予測データ)をFPGA(320)の注文生成部326に提供できる。FPGA(320)及びNPU(340)間には、所定の入出力帯域幅を有する通信線路が形成され、通信線路を利用してFPGA(320)からNPU(340)に入力データが提供され、NPU(340)からFPGA(320)に予測データが提供され得る。
【0089】
このような構造のプロセッサ300では、マーケットデータに基づいて注文データを生成するまで遅延時間が発生し得る。マーケットデータの受信トラフィックが増加するほど、機械学習モデルの演算量が多くなるほど、または、機械学習モデルに入力されるバッチサイズ(batch size)が大きいほど、注文データを生成するまでの遅延時間が増加し得る。すなわち、マーケットデータのトラフィックが増加するほど、または、機械学習モデルの演算複雑度が増加するほど、注文データを生成するまでの遅延時間が増加し得る。高頻度証券取引において、遅延時間は致命的な短所として作用し得る。これにより、高頻度証券取引では、遅延時間を減少させて迅速に注文データを生成させることが重要であると言える。
【0090】
本開示では、後述するように、コンテクスト情報により、ハードウェア負荷が増加したり、ハードウェアに対する性能向上を必要としたりすると予測される場合、通常よりも多くのリソースをハードウェアに割り当て、ハードウェアの性能を一時上昇させて、より速くデータに対するローディング/演算/転送が遂行されるように制御できる。ここで、リソースは、ハードウェアに提供できる任意の資源を称することができ、例えば、電圧又はクロックソースのうちの少なくとも一つを含むことができるが、これに限定されるものではない。ハードウェアの性能を調節する方法については、図7乃至図14を参照して詳細に後述する。
【0091】
以下、図4乃至図6を参照して、機械学習モデルの学習方法及び機械学習モデルから得られる出力データについて説明する。
【0092】
図4は、本開示の一実施例に係る機械学習モデルが入力データ410に基づいて出力データ420を出力する例を示す図である。一実施例によれば、機械学習モデル400は、入力データ410に基づいて、ターゲット種目の注文と関連付けられた出力データ420を出力できる。一実施例によれば、機械学習モデルは、入力データ410に基づいて未来特定時点でのターゲット種目の予測価格(例えば、市場価格又は中間価格など)を出力できる。他の実施例によれば、入力データ410に基づいて複数の未来時点でのターゲット種目の予測価格を出力できる。このとき、機械学習モデル400を利用してマルチホライズン予測(multi horizon forecasting)に基づいて、複数の未来時点の各々でのターゲット種目の価格を予測できる。
【0093】
一実施例によれば、機械学習モデル400に入力される入力データ410は、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を含む入力特徴マップ(input feature map)を含むことができる。機械学習モデル400の入力データ410については、図5を参照して詳細に後述する。
【0094】
一実施例によれば、機械学習モデル400は、一つ以上の証券取引所の参照マーケットデータに基づいて生成された参照入力データを利用して、ターゲット証券取引所での証券注文と関連付けられた参照出力データを推論するように学習できる。例えば、機械学習モデル400は、第1の証券取引所の第1の参照マーケットデータ及び第2の証券取引所の第2の参照マーケットデータに基づいて生成された時点(t)から時点(t+M-1)までの参照入力データ、時点(t+1)でのターゲット種目の中間価格データを利用して、総M個の連続された時点を含む時間区間での入力データに基づいて、次の時点でのターゲット種目の中間価格を推論するように指導学習できる。ここで、t及びMは、自然数であり得る。
【0095】
一実施例によれば、機械学習モデル400は、特定時点の特定種目に対するマーケットデータ及び正解データ(ground truth data)を含むトレーニングセットに基づいて、特定時点より未来の複数の時点での特定種目に対する予測データを推論するように学習できる。ここで、正解データは、未来の複数の時点の各々での特定種目に対する価格であり得る。機械学習モデル400から出力された特定未来時点での特定種目に対する推論価格と、正解データに含まれた特定未来時点での特定種目に対する価格との差(loss)が算出され、算出された差が機械学習モデル400にフィードバックされて、人工神経網に含まれた各ノードの加重値を調整できる。
【0096】
機械学習モデル400により出力された出力データ420は、ターゲット証券取引所での証券注文と関連付けられた情報を含むことができ、プロセッサ(例えば、情報処理システムのプロセッサ)は、出力データ420及び既定の政策に基づいて、ターゲット種目に対する注文データを生成できる。
【0097】
ここで、既定の政策には、出力データ420に含まれた予測結果によって株式の売り、買い、取引量などを定義できる。一実施例によれば、本開示の機械学習モデル400は、人工神経網モデルであり得る。人工神経網モデルについては、図6を参照して詳細に後述する。
【0098】
図5は、本開示の一実施例に係る機械学習モデルの入力データ510の構成の例を示す図である。情報処理システムは、一つ以上の証券取引所から受信されたマーケットデータに基づいて、入力データ510を生成できる。一実施例によれば、入力データ510は、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を有する入力特徴マップ(input feature map)を含むことができる。
【0099】
例えば、入力特徴マップは、図5に示すように、M個(ここで、Mは自然数である)の時点でのK個(ここで、Kは自然数である)の種目に対するN個(ここで、Nは自然数である)の入力特徴を含むことができる。図示の例において、入力データに含まれた入力特徴マップのうち、特定時点(図5において、時点(m))でのデータ520は、特定時点での一つ以上の種目(図5において第1の種目、第2の種目、第3の種目など)に対する一つ以上の入力特徴(図5において買い手のオーダーブック上段の価格や数量、売り手のオーダーブック上段の価格や数量など)を含むことができる。また、入力データに含まれた入力特徴マップのうち、特定入力特徴(図5においてn番目の入力特徴)に対するデータ530は、一つ以上の時点(図5において時点(t-M+1)から時点(t)まで)での一つ以上の種目に対する特定入力特徴を含むことができる。一実施例において、入力特徴マップは、互いに異なる種目に対する一つ以上の入力特徴が互いに交差するように生成することができる。
【0100】
一実施例によれば、入力データ510に含まれる一つ以上の種目は、注文対象となるターゲット種目の市場状況の先行指標となる種目であり得る。例えば、注文の対象となるターゲット種目がA社株式(現物)種目である場合、A社株式と関連付けられた先物種目、A社株式と関連付けられたオプション種目、他の取引所に含まれたA社関連種目、A社関連商品に対する先物種目のうちの少なくとも一つが先行指標となる種目であり得る。一実施例において、一つ以上の種目はターゲット種目を含むことができる。すなわち、情報処理システムは、ターゲット種目に対するデータを含む入力データに基づいて、ターゲット種目の未来市場状況を予測できる。また、一実施例において、各入力種目に関する情報は、各入力種目と関連付けられたコード(symbol)として含まれることができる。
【0101】
一実施例によれば、入力データ510に含まれる一つ以上の入力特徴は、ターゲット種目の市場状況予測に有意味な情報を含むことができる。例えば、入力特徴は、市場価格(取引価格)、買い手のオーダーブック上段の価格や数量、売り手のオーダーブック上段の価格や数量、買い希望者の数、売り希望者の数、オーダーブック上段の次のステップの買い呼値、オーダーブック上段の次のステップの売り呼値、オーダーブックに含まれた呼値の分散など、一つ以上の種目のオーダーブックから抽出できる様々な情報、これを加工した情報及び/又は情報の信頼度などを含むことができる。一実施例において、このような一つ以上の入力特徴は、一つ以上の種目の各々から抽出することができる。
【0102】
前述したように構成された入力データ510は、プロセッサ(例えば、FPGAなど)により機械学習モデルのための専用加速器に伝達されて、機械学習モデルに入力されることができる。
【0103】
図6は、本開示の一実施例に係る人工神経網モデル600の例を示す図である。人工神経網モデル600は、機械学習モデルの一例として、機械学習(Machine Learning)技術及び認知科学において、生物学的神経網の構造に基づいて具現化された統計学的学習アルゴリズム又はそのアルゴリズムを実行する構造である。
【0104】
一実施例によれば、人工神経網モデル600は、生物学的神経網のように、シナプスの結合によりネットワークを形成した人工ニューロンであるノード(Node)等がシナプスの加重値を繰り返して調整して、特定の入力に対応した正しい出力及び推論された出力間の誤差が減少するように学習することで、問題解決能力を持つ機械学習モデルを称することができる。例えば、人工神経網モデル600は、機械学習やディープラーニングなどの人工知能学習法に使用される任意の確率モデル、ニューラルネットワークモデルなどを含むことができる。
【0105】
一実施例によれば、人工神経網モデル600は、一つ以上の証券取引所のマーケットデータに基づいて生成された入力データを用いて、未来の一つの時点において、ターゲット証券取引所での証券注文と関連付けられたデータ(例えば、価格や価格変動などに関するデータ)を推論するように構成された人工神経網モデルを含むことができる。他の実施例によれば、人工神経網モデル600は、マルチホライズン予測(multi horizon forecasting)モデルを含み、複数の未来時点において、ターゲット証券取引所での証券注文と関連付けられたデータ(例:価格や価格変動などに関するデータ)を予測することもできる。
【0106】
人工神経網モデル600は、多層のノード等及びこれら間の連結により構成された多層パーセプトロン(multilayer perceptron、MLP)で具現化される。本実施例に係る人工神経網モデル600は、MLPを含む多様な人工神経網モデルの構造の一つを用いて具現化することができる。図6に示すように、人工神経網モデル600は、外部から入力信号又はデータ610を受信する入力層620と、入力データに対応する出力信号又はデータ650を出力する出力層640と、入力層620及び出力層640間に位置し、入力層620から信号を受信して特性を抽出して、出力層640に伝達するn個(ここで、nは正の整数)の隠れ層630_1乃至630_nとからなる。ここで、出力層640は、隠れ層630_1乃至630_nから信号を受信して外部に出力する。
【0107】
人工神経網モデル600の学習方法には、教師信号(正解)の入力によって問題の解決に最適化するように学習する教師あり学習(Supervised Learning)方法と、教師信号を必要としない教師なし学習(Unsupervised Learning)方法とがある。一実施例において、人工神経網モデル600は、ターゲット証券取引所での証券注文と関連付けられたデータを推論するように、教師あり学習及び/又は教師なし学習を行うことができる。例えば、人工神経網モデル600は、参照入力データから一つ以上の未来時点でのターゲット種目の参照価格を推論するように、教師あり学習を行うことができる。
【0108】
このように学習された人工神経網モデル600は、情報処理システムのメモリ(図示せず)に保存することができ、通信モジュール及び/又はメモリから受信されたデータの入力に応じて、ターゲット証券取引所での証券注文と関連付けられたデータを推論できる。
【0109】
一実施例によれば、ターゲット証券取引所での証券注文と関連付けられたデータを推論するための人工神経網モデルの入力データは、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴を含むことができる。例えば、人工神経網モデル600の入力層620に入力される入力データは、一つ以上の時点での一つ以上の種目に対する一つ以上の入力特徴に関する情報を含むデータを一つのベクトルデータ要素で構成した、ベクトルになり得る。データの入力に応じて、人工神経網モデル600の出力層640から出力される出力データは、ターゲット証券取引所での証券注文と関連付けられたデータを示したり特徴化したりするベクトルになり得る。すなわち、人工神経網モデル600の出力層640は、一つ以上の未来時点において、ターゲット証券取引所での証券注文と関連付けられたデータを示したり特徴化したりするベクトルを出力するように構成することができる。本開示において、人工神経網モデル600の出力データは、以上で説明された類型に限定されず、一つ以上の未来時点において、ターゲット証券取引所での証券注文と関連付けられたデータを示す任意の情報/データを含むことができる。
【0110】
このように、人工神経網モデル600の入力層620及び出力層640に複数の入力データと対応する複数の出力データが各々マッチングされ、入力層620、隠れ層630_1乃至630_n及び出力層640に含まれたノード等間のシナプス値が調整されることで、特定の入力に対応した正しい出力が抽出されるように学習させることができる。このような学習過程により、人工神経網モデル600の入力データの隠れ特性を把握でき、入力データに基づいて計算された出力データ及び目標出力間の誤差が低減するように、人工神経網モデル600のノード等間のシナプス値(又は加重値)を調整することができる。このように学習された人工神経網モデル600は、入力されたデータに応じて、ターゲット証券取引所での証券注文と関連付けられたデータを出力できる。
【0111】
図7及び図8に基づいて、本開示の一実施例に係る動的にハードウェア性能が調節される情報処理システムの内部構成を説明する。説明の便宜上、図7及び図8に基づいた説明では、データ前処理及び後処理を遂行するプロセッサがFPGAであるとして説明する。また、後述する実施例等では、機械学習モデルのための専用加速器がNPUであるとして説明する。
【0112】
図7は、本開示の一実施例に係る情報処理システム700の内部構成の例を示す図である。図7に示すように、情報処理システム700は、複数のリソース710、720、プロセッサ740、NPU(760)及びFPGA(780)を含むことができる。例えば、プロセッサ740は中央処理装置であり得る。また、図に示していないが、情報処理システム700はメモリをさらに含むことができる。図7において、実線はリソースが供給されるラインを示し、点線は通信経路を示す。情報処理システム700は、図2の情報処理システム110の少なくとも一部に含まれることができる。プロセッサ740、NPU(760)及び/又はFPGA(780)は、PLL(Phase-Locked Loop)を含むことができ、第1のリソース710から供給される入力信号を適切に変換して動作できる。
【0113】
プロセッサ740は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト情報を受信できる。プロセッサ740は、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定し、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更できる。ここで、ハードウェアは、FPGA(780)、NPU(760)、プロセッサ740、メモリ(図示せず)、入力トラフィックモニタリングモジュール(図示せず)などを含むことができる。入力トラフィックモニタリングモジュールは情報処理システム700に含まれ、FPGA(780)に入力されるデータの大きさ又は回数などのトラフィックを測定又はモニタリングできる。代替的に、入力トラフィックモニタリングモジュールは、FPGA(780)に含まれるように具現化することができる。入力トラフィックモニタリングモジュールにより測定又はモニタリングされたマーケットデータのトラフィックは、コンテクスト情報に含まれてプロセッサ740に提供することができる。
【0114】
第1のリソース710は、複数のクロックソース712-1乃至712-n(nは自然数である)を含むことができる。複数のクロックソース712-1乃至712-nの各々の周波数が互いに同一又は異なることができる。代替的に、複数のクロックソース712-1乃至712-nのうちの少なくとも一部の周波数は、互いに同一であり得る。例えば、第1のクロックソース712-1は200MHzであり、第2のクロックソース712-2は1GHzであり得る。他の例として、第1のクロックソース712-1及び第2のクロックソース712-2は全部2GHzであり得る。
【0115】
一実施例において、既定の性能等級によって異なる周波数(速度)を有する複数のクロックソース712-1乃至712-nが、第1のリソース710に含まれることができる。例えば、第1の性能等級に該当する第1の周波数のクロックソース、第2の性能等級に該当する第2の周波数のクロックソース、及び第3の性能等級に該当する第3の周波数のクロックソースが、第1のリソース710に含まれることができる。ここで、第1の性能等級は最も速い演算と関連付けられた等級であり、第3の性能等級は最も遅い演算と関連付けられた等級であり、第2の性能等級は中間程度の演算と関連付けられた等級であり得る。また、第1の周波数は最も速い速度の周波数であり、第3の周波数は最も遅い速度の周波数であり、第2の周波数は中間速度の周波数であり得る。
【0116】
複数のクロックソース712-1乃至712-nのうちの少なくとも一つが活性化して、情報処理システム700のハードウェアに目標速度のクロック信号が供給され得る。ここで、ハードウェアは、FPGA(780)、NPU(760)、プロセッサ740、メモリ(図示せず)などを含むことができる。図7に示すように、第1のリソース710及びハードウェア間に複数のクロック信号供給ラインが形成され、各々のクロック信号供給ラインを介して、目標速度を有するクロック信号がハードウェアに供給され得る。複数のクロックソース712-1乃至712-nのうちで活性化するクロックソースは、プロセッサ740によって決定され得る。
【0117】
第2のリソース720は、複数の電圧ソース722-1乃至722-n(nは自然数である)を含むことができる。複数の電圧ソース722-1乃至722-nの各々の電圧が互いに異なることができる。代替的に、複数の電圧ソースのうちの少なくとも一部の電圧は互いに同一であり得る。例えば、第1の電圧ソース722-1は0.7Vであり、第2の電圧ソース722-2は1Vであり得る。他の例として、第1の電圧ソース722-1及び第2の電圧ソース722-2は全部5Vであり得る。
【0118】
また、既定の性能等級によって異なる電圧を有する電圧ソース722-1乃至722-nが、第2のリソース720に含まれることができる。例えば、第1の性能等級に該当する第1の電圧ソース、第2の性能等級に該当する第2の電圧ソース、及び第3の性能等級に該当する第3の電圧ソースが、第2のリソース720に含まれることができる。ここで、第1の性能等級は最も速い演算と関連付けられた等級であり、第3の性能等級は最も遅い演算と関連付けられた等級であり、第2の性能等級は中間程度の演算と関連付けられた等級であり得る。また、第1の電圧ソースは最も強い電圧を供給する電圧ソースであり、第3の電圧ソースは最も弱い電圧を供給する電圧ソースであり、第2の電圧ソースは中間強度の電圧を供給する電圧ソースであり得る。
【0119】
少なくとも一つの電圧ソースが活性化して、情報処理システム700のハードウェアに目標となる強度の目標電圧が供給され得る。図7に示すように、第2のリソース720及びハードウェア間に複数の電圧信号供給ラインが形成され、各々の電圧信号供給ラインを介して、目標電圧がハードウェアに供給され得る。ハードウェアに供給される電圧の強度は、プロセッサ740によって決定され得る。
【0120】
FPGA(780)は、マーケットデータを前処理して機械学習モデルの入力データを生成した後、生成された入力データをNPU(760)に提供できる。また、FPGA(780)は、NPU(760)から受信した機械学習モデルの予測データに基づいて、ターゲット種目に対する証券の買い又は売りの注文データを生成して、ターゲット証券取引所に転送できる。
【0121】
NPU(760)は、FPGA(780)から受信した入力データに基づいて、機械学習モデルの演算を遂行できる。NPU(760)は、機械学習モデルの出力データをFPGA(780)に伝達できる。
【0122】
FPGA(780)及びNPU(760)には、第1のリソース710からクロック信号が供給され、第2のリソース720から電圧が供給される。FPGA(780)及びNPU(760)には、互いに同一もしくは異なる強度の電圧及び/又は同一の速度のクロック信号が供給される。より速いクロック信号が供給されるほど、FPGA(780)及びNPU(760)の演算速度が速くなる。また、より大きい強度の電圧が供給されるほど、FPGA(780)及びNPU(760)の演算速度が速くなる。また、図に示していないが、メモリにも、第1のリソース710からクロック信号が供給され、第2のリソース720から電圧が供給される。
【0123】
プロセッサ740は、リソースの供給を制御して、ハードウェアの性能を動的に調節できる。プロセッサ740は、コンテクスト情報に基づいてハードウェアに対する処理性能を変更するか否かを判定し、処理性能を変更する判定結果に基づいて、ハードウェアに供給されるリソースを変更できる。ここで、コンテクスト情報は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルの演算複雑度のうちの少なくとも一つを含むことができる。プロセッサ740は、コンテクスト情報に基づいて、ハードウェアで要求される処理等級を判定し、判定の結果に基づいて目標電圧及び/又は目標クロックを決定することができる。
【0124】
一実施例によれば、マーケットデータのトラフィックは、単位時間の間にFPGA(780)により受信されるマーケットデータの大きさ又はマーケットデータの受信回数に基づいて測定することができる。
【0125】
また、機械学習モデルの演算複雑度は、ハードウェアの負荷、又は、機械学習モデルの演算に利用されるパラメーターの大きさのうちの少なくとも一つに基づいて測定することができる。ここで、ハードウェアの負荷は、FPGA(780)の可用率、NPU(760)の可用率、又はメモリの可用率のうちの少なくとも一つに基づいて測定することができる。また、パラメーターの大きさは、機械学習モデルの演算に利用されるメモリ(例えば、NPUのメモリ)にローディングされるパラメーターの大きさに基づいて測定することができる。
【0126】
一実施例によれば、プロセッサ740は、第1のリソース710に含まれたクロックソース712-1乃至712-nの一つ以上が活性化し、第2のリソース720に含まれた電圧ソース722-1乃至722-nの一つ以上が活性化するように制御できる。活性化した一つ以上のクロックソースはハードウェアに目標速度のクロック信号を供給でき、活性化した一つ以上の電圧ソースはハードウェアに目標電圧を供給できる。
【0127】
一実施例によれば、ハードウェアに含まれた構成要素等は、処理領域によって区画することができる。例えば、一つ以上のメモリが第1の処理領域に区画される第1のグループに含まれることができ、一つ以上のNPUが第2の処理領域に区画される第2のグループに含まれることができ、一つ以上のFPGAが第3の処理領域に区画される第3のグループに含まれることができる。他の例として、第1のメモリ及び第1のFPGAが第1の処理領域に区画される第1のグループに含まれることができ、第2のメモリ及び第2のFPGAが第2の処理領域に区画される第2のグループに含まれることができ、第1のNPUが第3のグループに含まれることができる。
【0128】
また、各プロセッサに含まれた構成要素等は処理領域によって区画することができる。図3を例として説明すれば、FPGAに含まれたデータ前処理部324、データ受信部322及びNPUに含まれたローディングモジュール342が、第1の処理領域に区画される第1のグループに含まれることができ、NPUに含まれた演算モジュール344が、第2の処理領域に区画される第2のグループに含まれることができ、NPUに含まれた転送モジュール346及びFPGA(320)に含まれた注文生成部326が、第3の処理領域に区画される第3のグループに含まれることができる。このような処理領域の区画は、物理的な領域又はデータ処理の流れに基づいて設定することができる。
【0129】
このように、複数の処理領域が区画される場合、各グループ専用のクロックソース及び/又は電圧ソースが予め割り当てられる。例えば、第1のグループには、第1のクロックソース乃至第3のクロックソース及び/又は第1の電圧ソース乃至第3の電圧ソースが割り当てられ、第2のグループには、第4のクロックソース乃至第6のクロックソース及び/又は第4の電圧ソース乃至第6の電圧ソースが割り当てられ、第3のグループには、第7のクロックソース乃至第9のクロックソース及び/又は第7の電圧ソース乃至第9の電圧ソースが割り当てられる。
【0130】
グループ別にクロックソース及び/又は電圧ソースが予め割り当てられる場合、プロセッサ740は、性能変更を進行したいグループを識別し、識別されたグループに含まれたハードウェアに供給される電圧の強度及び/又はクロックの速度を調節できる。例えば、マーケットデータのトラフィックが既定の閾値以上であると判定される場合、マーケットデータの前処理に対する性能を向上させるために、プロセッサ740は、FPGAのデータ前処理部が含まれたグループを識別し、識別されたグループにより多くのリソースが供給されるように、第1のリソース710及び/又は第2のリソース720を制御できる。他の例として、機械学習モデルの演算複雑度が既定の閾値以上である場合、機械学習モデルの演算速度を向上させるために、プロセッサ740は、NPUの演算モジュールが含まれたグループを識別し、識別されたグループにより多くのリソースが供給されるように、第1のリソース710及び/又は第2のリソース720を制御できる。一実施例において、プロセッサは、識別されたグループと関連付けられた複数の電圧ソース及び/又は複数のクロックソースの一つ以上を活性化したり、既に活性化した電圧ソース及び/又はクロックソースを非活性化したりして、目標速度のクロック信号及び/又は目標電圧を供給できる。
【0131】
一方、本開示の他の実施例によれば、複数個のNPUが情報処理システムに含まれることもできる。
【0132】
図8は、本開示の他の実施例に係る情報処理システム800の内部構成の例を示す図である。以下、図8に基づいた説明において、図7に基づいた説明と重複する部分については省略又は圧縮要約し、差異点については詳細に説明する。情報処理システム800は、図2の情報処理システム110の少なくとも一部に含まれることができる。
【0133】
図8に示すように、情報処理システム800は、複数のリソース810、820、プロセッサ840、NPUクラスタ860及びFPGA(880)を含むことができる。図に示していないが、情報処理システム800は、メモリ、入力トラフィックモニタリングモジュールなどをさらに含むことができる。
【0134】
FPGA(880)は、マーケットデータを前処理して、機械学習モデルの入力データを生成してNPUクラスタ860に提供できる。このとき、生成された少なくとも一つの入力データはメモリに保存され、メモリに保存された少なくとも一つの入力データをNPUクラスタ860に提供できる。例えば、メモリはキューを含み、少なくとも一つの入力データはキューに保存され、キューに保存された入力データの優先順位に基づいて、少なくとも一つの入力データをNPUクラスタ860に提供することができる。
【0135】
一実施例によれば、プロセッサ840により決定されたバッチサイズ(batch size)に基づいて、メモリに保存された少なくとも一つの入力データが抽出され、抽出された入力データをNPUクラスタ860に提供することができる。また、FPGA(880)は、NPUクラスタ860から受信した機械学習モデルの予測データ(出力データ)に基づいて、ターゲット種目に対する証券の買い又は売りの注文データを生成して、ターゲット証券取引所に転送できる。
【0136】
第1のリソース810は、複数のクロックソース812-1乃至812-nを含むことができる。複数のクロックソース812-1乃至812-nの一つ以上が活性化して、情報処理システム800のハードウェアに目標速度のクロック信号を供給できる。
【0137】
第2のリソース820は、複数の電圧ソース822-1乃至822-nを含むことができる。一つ以上の電圧ソースが活性化して、情報処理システム800のハードウェアに目標電圧を供給できる。
【0138】
プロセッサ840は、リソースの供給を制御して、ハードウェアの性能を動的に調節できる。プロセッサ840は、コンテクスト情報に基づいてハードウェアに対する処理性能を変更するか否かを判定し、判定の結果に基づいて、ハードウェアに供給されるリソースを調節できる。他の実施例によれば、プロセッサ840は、NPUクラスタ860に含まれた複数のNPU(862-1乃至862-n)の各々に対する負荷をモニタリングして、負荷が閾値を超過するNPUが識別される場合、識別されたNPUにより多くのリソースが供給されるように、第1のリソース810及び/又は第2のリソース820を制御できる。
【0139】
NPUクラスタ860は、複数のNPU(862-1乃至862-n)を含むことができる。複数のNPU(862-1乃至862-n)のうちの少なくとも一つは、FPGA(880)により前処理された入力データに基づいて機械学習モデルの演算を遂行し、機械学習モデルの出力データをFPGA(880)に伝達できる。複数のNPU(862-1乃至862-n)のうちの少なくとも一つは、キューから入力データを抽出できる。例えば、FPGA(880)は、マーケットデータを前処理した少なくとも一つの入力データをキューに保存し、複数のNPU(862-1乃至862-n)のうちの少なくとも一つは入力データをキューから抽出できる。
【0140】
一実施例によれば、NPU(862-1乃至862-n)の各々は、互いに独立的に動作する機械学習モデルと関連付けられる。例えば、NPU_1(862-1)は第1の機械学習モデルと関連付けられ、NPU_2(862-2)は第2の機械学習モデルと関連付けられ、NPU_3(862-3)は第3の機械学習モデルと関連付けられる。
【0141】
一部の実施例において、NPU(862-1乃至862-n)は、機械学習モデルに含まれた複数のレイヤと関連付けられた複数の処理領域に区画することができる。例えば、機械学習モデルが複数のレイヤを有する人工神経網形態で具現化された場合、NPU_1(862-1)は人工神経網の第1のレイヤと関連付けられた処理領域に対する演算を遂行し、NPU_2(862-2)は人工神経網の第2のレイヤと関連付けられた処理領域に対する演算を遂行できる。他の例として、複数のNPUが一つのレイヤと関連付けられる。例えば、NPU_1(862-1)及びNPU_2(862-2)が人工神経網の第1のレイヤと関連付けられた処理領域に対する演算を遂行できる。また他の例として、一つのNPUが複数のレイヤと関連付けられる。
【0142】
NPUクラスタ860に含まれた複数のNPU(862-1乃至862-n)の各々には、第1のリソース810からクロック信号が供給され、第2のリソース820から電圧が供給される。NPUクラスタ860に含まれた複数のNPU(862-1乃至862-n)の各々には、互いに同一もしくは異なる強度の電圧及び/又は同一の速度のクロック信号が供給される。より速いクロック信号が供給されるほど、NPU(862-1乃至862-n)の演算速度が速くなる。付加的又は代替的に、より大きい強度の電圧が供給されるほど、NPU(862-1乃至862-n)の演算速度が速くなる。また、図に示していないが、メモリにも、第1のリソース810からクロック信号が供給され、第2のリソース820から電圧が供給される。
【0143】
一定の個数のNPUは一つのメモリ(図示せず)に共有され、メモリが一定の個数のNPUによって共有され得る。このとき、メモリには、機械学習モデルの演算のためのパラメーターがローディングされ得る。例えば、NPU_1(862-1)により演算された人工神経網の第1のレイヤに対する出力結果と関連付けられた第1のパラメーターがメモリに保存され、メモリに保存された第1のパラメーターに基づいて、第2のレイヤの演算がNPU_2(862-2)によって遂行された後、演算結果と関連付けられた第2のパラメーターがメモリに保存され得る。
【0144】
他の実施例によれば、各処理領域に応じてクロックソース862-1乃至862-n及び/又は電圧ソース822-1乃至822-nを区画できる。すなわち、第1の処理領域に対応する一つ以上のクロックソース及び/又は一つ以上の電圧ソースが予め割り当てられ、第2の処理領域に対応する一つ以上のクロックソース及び/又は一つ以上の電圧ソースが予め割り当てられる。
【0145】
プロセッサ840は、リソースの供給を制御して、ハードウェアの性能を動的に調節できる。また、プロセッサ840は、NPUクラスタ860に含まれたNPU(862-1乃至862-n)のうちの少なくとも一つのNPUをターゲットNPUとして決定し、ターゲットNPUに割り当てられる作業負荷(workload)を決定できる。このような制御のために、プロセッサ840は、スケジューラ842及びリソース制御部844を含むことができる。
【0146】
スケジューラ842は、一つ以上のターゲット種目に対するマーケットデータのトラフィックをFPGA(880)から受信し、受信されたマーケットデータのトラフィックに基づいて、許容時間を動的に決定できる。一実施例によれば、マーケットデータのトラフィックは、単位時間の間にFPGA(880)から受信されるマーケットデータの大きさ、又は、マーケットデータの受信回数に基づいて測定することができる。また、許容時間は、注文データが生成されるまで許容される時間、或いは、機械学習モデルで推論結果が得られるまで許容される時間であり得る。一実施例によれば、スケジューラ842は、マーケットデータのトラフィックが高くなると、許容時間を相対的に短く設定でき、マーケットデータのトラフィックが低くなると、許容時間を相対的に長く設定できる。すなわち、許容時間は、マーケットトラフィックと反比例する。
【0147】
スケジューラ842は、各NPU(862-1乃至862-n)に割り当てられた作業負荷を決定できる。一実施例によれば、スケジューラ842は、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、作業遂行対象となるターゲットNPUを決定し、ターゲットNPUを介して遂行される機械学習モデルの推論演算に対する作業負荷を決定できる。スケジューラ842は、決定された作業負荷に基づいて、複数の入力データのうちの少なくとも一つの入力データを選択し、選択された少なくとも一つの入力データと関連付けられた情報をターゲットNPUに提供できる。例えば、スケジューラ842は、選択された少なくとも一つの入力データの各々に対するインデックス(index)をターゲットNPUに伝達し、ターゲットNPUは、インデックスに基づいてメモリから少なくとも一つの入力データを抽出できる。ここで、インデックスは、メモリのキューに保存された入力データの優先順位と関連付けられた識別情報であり得る。他の例として、スケジューラ842は、選択された少なくとも一つの入力データをメモリから抽出し、抽出された少なくとも一つの入力データをターゲットNPUに転送できる。これにより、ターゲットNPUは、作業負荷に基づいて選択された少なくとも一つの入力データを機械学習モデルに適用して、機械学習モデルによる推論演算を遂行できる。スケジューラ842によって作業負荷が割り当てられる多様な方法については、図12及び図13を参照して後述する。
【0148】
リソース制御部844は、ハードウェアに供給されるリソースを制御して、ハードウェアの性能を動的に調節できる。一実施例によれば、リソース制御部844は、第1のリソース810に含まれたクロックソース812-1乃至812-nの一つ以上が活性化するように制御でき、第2のリソース820に含まれた電圧ソース822-1乃至822-nの一つ以上が活性化するように制御できる。活性化した一つ以上のクロックソースは、ハードウェアに目標速度のクロック信号を供給でき、活性化した一つ以上の電圧ソースは、ハードウェアに目標電圧を供給できる。本開示において、クロックソースの個数、電圧ソースの個数及びNPUクラスタの個数を表示するために全部nで表現したが、各々のnは互いに異なるか、或いは、少なくとも一部が同一であり得る。
【0149】
一実施例によれば、リソース制御部844は、コンテクスト情報に基づいてハードウェアに対する処理性能を変更するか否かを判定し、判定の結果に基づいてハードウェアに供給されるリソースを調節できる。他の実施例によれば、リソース制御部844は、NPUクラスタ860に含まれた複数のNPU(862-1乃至862-n)の各々に対する負荷をモニタリングして、負荷が閾値を超過するNPUが識別されると、識別されたNPUにより多くのリソースが供給されるように、第1のリソース810及び/又は第2のリソース820を制御できる。
【0150】
一方、処理領域別にソースが予め割り当てられる場合、リソース制御部844は、性能変更を進行したい処理領域を識別し、識別された処理領域に対する演算を遂行する一つ以上のNPUに供給される電圧の強度及び/又はクロックの速度を調節できる。このとき、リソース制御部844は、識別された処理領域と関連付けられた一つ以上の電圧ソース及び/又は一つ以上のクロックソースの一つ以上を活性化したり、既に活性化した電圧ソース及び/又はクロックソースを非活性化したりできる。
【0151】
一部の実施例によれば、リソース制御部844は、許容時間及びハードウェアの可用リソースに基づいて、作業負荷を処理するためのハードウェアのリソースを決定し、決定されたリソースをハードウェアに供給できる。このとき、リソース制御部844は、作業負荷が割り当てられたターゲットNPUに決定されたリソースを供給できる。
【0152】
図9は、本開示の一実施例に係るハードウェアリソース制御に利用される多様な参照テーブル910、920の例を示す図である。図9に示すように、複数の参照テーブル910、920は、情報処理システムのメモリに保存することができる。図9に示すテーブルに記録されたリソースは、クロック周波数及び電圧と関連付けられる。例えば、第1のリソース(RES_#1)は第1のクロック周波数及び第1の電圧を含み、第2のリソース(RES_#2)は第1のクロック周波数及び第2の電圧を含み、第3のリソース(RES_#3)は第2のクロック周波数及び第1の電圧を含むことができる。ここで、周波数は、クロックソースから供給する周波数と関連付けられ、電圧は電圧ソースから供給する電圧と関連付けられる。
【0153】
第1の参照テーブル910は、消費電力(consumed power)、バッチサイズ(batch size)及びリソース(resource)がマッピングされるデータを含むことができる。第1の参照テーブル910に記録された消費電力は、バッチサイズ及びリソースに比例して増加し得る。すなわち、バッチサイズが大きいほど、クロック周波数が速いほど及び/又は電圧が大きいほど、消費電力が増加し得る。ここで、消費電力は、後述する作業負荷における必要電力として理解されるべきである。
【0154】
第2の参照テーブル920は、推論時間(inference time)、バッチサイズ(batch size)及びリソース(resource)がマッピングされるデータを含むことができる。ここで、推論時間は、後述する作業負荷を処理するのに発生する遅延時間として理解されるべきである。第2の参照テーブル920に含まれた推論時間は、バッチサイズと比例し、及び/又はリソースの量と反比例する。すなわち、バッチサイズが小さいほど、推論時間は短くなり、リソースの量が大きいほど、推論時間が短くなる。
【0155】
図9に示す少なくとも一つのテーブルは、NPUに作業負荷を割り当てる時に利用され、また、ハードウェアに供給されるリソースを調節する時に利用される。
【0156】
図10は、本開示の一実施例に係る高頻度証券取引のためにハードウェア性能を動的に調節する方法1000を説明するためのフローチャートである。図10に示す方法は、本開示の目的を達成するための一実施例に過ぎず、必要によって一部のステップを追加又は削除できることは勿論である。また、図10に示す方法は、情報処理システムに含まれた少なくとも一つのプロセッサによって遂行することができる。説明の便宜上、図8に示す情報処理システムに含まれたプロセッサによって、図10に示す各ステップが遂行されるものとして説明する。
【0157】
プロセッサの制御により、情報処理システムのハードウェアにリソースを供給できる(S1010)。ここで、ハードウェアは、情報処理システムに含まれたメモリ、FPGA、入力トラフィックモニタリングモジュール、機械学習のための専用加速器、又は中央処理装置のうちの少なくとも一つを含むことができる。また、リソースは、電圧又はクロック信号のうちの少なくとも一つを含むことができる。
【0158】
プロセッサは、コンテクスト情報を受信できる(S1020)。コンテクスト情報は、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むことができる。一実施例によれば、マーケットデータのトラフィックは、単位時間当りのマーケットデータの受信回数、又は、単位時間当り受信されたマーケットデータの容量のうちの少なくとも一つに基づいて識別することができ、プロセッサは、このように識別されたマーケットデータのトラフィックを受信できる。例えば、データ前処理/後処理を遂行するプロセッサ(例えば、FPGAなど)によって単位時間当り受信されたマーケットデータの容量、又は、単位時間当りのマーケットデータの受信回数が測定されてマーケットデータのトラフィックが識別され、プロセッサは、データ前処理/後処理を遂行するプロセッサからマーケットデータのトラフィックを受信できる。
【0159】
一実施例によれば、演算複雑度は、ハードウェアの負荷、又は、機械学習モデルの演算に利用されるパラメーターの大きさのうちの少なくとも一つに基づいて測定でき、プロセッサは、このように測定された演算複雑度を受信できる。ここで、ハードウェアの負荷は、ハードウェアの使用率に基づいて測定することができる。また、パラメーターの大きさは、機械学習モデルの演算過程において、メモリにローディングされたパラメーターの大きさに基づいて測定することができる。パラメーターの大きさが大きいほど、演算複雑度が高くなり、ハードウェアの負荷が大きいほど、演算複雑度が高くなる。演算複雑度は、データ前処理/後処理を遂行するプロセッサ(例えば、FPGAなど)によって測定されてプロセッサに転送することができ、または、専用加速器によって測定されてプロセッサに転送することができる。一部の実施例において、プロセッサが、機械学習モデルの演算複雑度、または、マーケットデータのトラフィックを直接測定することもできる。
【0160】
続いて、プロセッサは、受信されたコンテクスト情報に基づいて、ハードウェアで要求される性能等級を判定できる(S1030)。性能等級は、複数の等級に予め定義でき、演算複雑度の範囲及び/又はマーケットデータのトラフィックの範囲別に、互いに異なる等級を予め定義することができる。演算複雑度及びマーケットトラフィックが全部使用される場合、演算複雑度、マーケットトラフィックの各々に互いに異なる加重値が適用され、加重値が適用された演算複雑度及びマーケットトラフィックを合算した結果の範囲別に互いに異なる等級を予め定義できる。また、各々の性能等級によって供給されるリソースの量(例えば、目標電圧及び/又は目標速度)を予め定義できる。
【0161】
その後、プロセッサは、判定される性能等級が、以前に判定された性能等級と比較して変動されたか否かを判定できる(S1040)。すなわち、プロセッサは、現在判定される性能等級が、以前に判定された性能等級に対して異なるか同一であるかを判定できる。
【0162】
性能等級が変動されなかったと判定される場合、プロセッサは、ハードウェアに供給されるリソースを変更しないように決定できる。これにより、ハードウェアに供給されるリソースは変更されず、以前と同一の強度の電圧及び/又は以前と同一の速度のクロック信号をハードウェアに供給できる。
【0163】
性能等級が変動されたと判定される場合、プロセッサは、変動された性能等級に基づいて、ハードウェアに供給されるリソースの変更を決定できる(S1050)。一実施例において、プロセッサは、判定された性能等級(すなわち、変動された性能等級)と対応するリソースの量を識別できる。ここで、リソースの量は、目標電圧及び/又は目標クロックの速度であり得る。
【0164】
続いて、プロセッサは、一つ以上の電圧ソース及び/又は一つ以上のクロックソースが活性化するように制御して、識別されたリソースの量に該当するリソースをハードウェアに供給できる(S1060)。識別されたリソースの量により、ハードウェアに供給されるリソースの量が減少又は増加し得る。例えば、変動された性能等級が以前の性能等級よりも高い場合、より多くのリソースがハードウェアに供給されて、ハードウェアの処理速度を向上させることができる。このとき、プロセッサは、直前に活性化していた電圧ソースよりも高い電圧を有する電圧ソースが活性化するように制御でき、及び/又は直前に活性化していたクロックソースよりも速い速度を有するクロックソースが活性化するように制御できる。このとき、プロセッサは、直前に活性化していたクロックソース及び/又は電圧ソースを非活性化できる。
【0165】
他の例として、変動された性能等級が以前の性能等級よりも低い場合、より少ないリソースがハードウェアに供給されて、ハードウェアの処理速度を減少させることができる。このとき、プロセッサは、直前に活性化していた電圧ソースよりも低い電圧を有する電圧ソースが活性化するように制御でき、及び/又は直前に活性化していたクロックソースよりも遅い速度を有するクロックソースが活性化するように制御できる。このとき、プロセッサは、直前に活性化していたクロックソース及び/又は電圧ソースを非活性化できる。
【0166】
図10に示すプロセスは、コンテクスト情報が受信される一つのサイクルに該当するものであって、新規のコンテクスト情報が受信される場合に毎回繰り返して実行することができる。仮りに、ハードウェアに要求される性能等級が変更されなかった場合、以前のサイクルで供給されたリソースが変動されず、継続的にハードウェアに供給され得る。
【0167】
一方、プロセッサは、ハードウェアが最大性能を発揮できる、閾値以上の性能等級を決定できる。仮りに、閾値以上の性能等級の判定により、閾値以上のリソースがハードウェアに供給される場合、閾値以上のリソースの供給によるハードウェアの動作時間が制限される。さらに説明すれば、ハードウェアが閾値以上の性能で動作する場合、ハードウェアが物理的に損傷を受ける恐れがあり、寿命を減少させる恐れがある。例えば、プロセッサがオーバークロックにより一時的に動作できるが、一定の時間を超過して継続的に動作する場合、プロセッサが物理的に損傷を受ける恐れがある。このような状況を防止するために、プロセッサは、閾値以上のリソースが供給される時間を測定し、測定の時間が閾時間に到達すれば、閾値よりも低いリソースがハードウェアに供給されるようにリソースを制御できる。例えば、プロセッサは、ハードウェアの性能等級を最大性能等級から一ステップ低い性能等級に変更し、変更された性能等級に基づいて、閾値よりも低いリソースがハードウェアに供給されるように制御できる。
【0168】
以下、図11乃至図14を参照して、高頻度証券取引のための作業スケジューリング方法及び/又はリソース調節方法について説明する。図11乃至図14に示す方法は、本開示の目的を達成するための一実施例に過ぎず、必要によって一部のステップを追加又は削除できることは勿論である。また、図11乃至図14に示す方法は、情報処理システムに含まれた少なくとも一つのプロセッサによって遂行することができる。例えば、図11乃至図14に示す方法は、図8のプロセッサ840に含まれたスケジューラ842及び/又はリソース制御部844によって遂行することができる。説明の便宜上、図8の情報処理システム800に含まれたプロセッサ840により、図11乃至図14に示す各ステップが遂行されるものとして説明する。
【0169】
図11は、本開示の一実施例に係るハードウェアに最少のリソースが供給される方法1100を説明するためのフローチャートである。図11に示す方法は、図8のプロセッサ840に含まれたリソース制御部844によって遂行することができる。また、図11と関連付けられた方法1100は、作業スケジューリングを開始する前に遂行することができる。例えば、作業スケジューリングと関連付けられた準備トリガー又は準備命令が発生すれば、図11に示すプロセスを遂行できる。
【0170】
プロセッサは、一つ以上のNPUの各々に供給中であるリソースを識別できる(S1110)。ここで、NPUは、機械学習モデルのための専用加速器に対する一つの例示であり得る。また、リソースは、電圧又はクロック信号のうちの少なくとも一つを含むことができ、プロセッサは、各NPUに供給される電圧の強度又はクロック周波数のうちの少なくとも一つを含むリソースを識別できる。
【0171】
その後、プロセッサは、一つ以上のNPUの各々に供給可能な最少のリソースを決定できる(S1120)。一実施例によれば、プロセッサは、各NPUに入力される少なくとも一つの入力データに対するバッチサイズを識別し、各NPUに供給したい複数の候補リソースを選択して候補リソースリストに登録できる。ここで、候補リソースは、現在NPUに供給されているリソースよりも少なくて、既定の下限値よりも大きい範囲で複数個が選択され得る。例えば、NPU_1に供給されるリソースがRES_#1である場合、NPU_1を対象とする複数の候補リソースは、RES_#1よりも少なくて下限値よりも多いことができる。また、一つ以上のNPUの各々に対する候補リソースリストは、互いに同一又は異なることができる。例えば、NPU_1及びNPU_2に同一のリソースが現在供給される場合、NPU_1を対象とする第1の候補リソースリストは、NPU_2を対象とする第2の候補リソースリストと同一であり得る。他の例として、NPU_1及びNPU_3に異なるリソースが現在供給される場合、NPU_1を対象とする第1の候補リソースリストは、NPU_3を対象とする第3の候補リソースリストと異なることができる。
【0172】
プロセッサは、複数のNPUの各々に入力される入力データに対するバッチサイズ、及び、NPUの各々に対する候補リソースリストに含まれた候補リソースに基づいて、複数の候補リソースの各々に対する作業遅延時間を算出できる。ここで、作業遅延時間は、機械学習モデルの推論時間であり、図9に示す第2の参照テーブル920を用いて算出できる。例えば、バッチサイズがBZ_#1であり、リソースがRES_#1である場合、プロセッサは、図9に示す第2の参照テーブル920を参照して、作業遅延時間がINT_#1であることを算出できる。
【0173】
その後、プロセッサは、算出された作業遅延時間が、許容時間未満になる少なくとも一つの候補リソースのうちで、最も少ないリソースを有する候補リソースをNPU別に識別し、識別されたNPU別の候補リソースをNPUの各々に供給される最少のリソースとして決定できる。一方、リソースは、電圧及びクロック周波数を含むことができ、このとき、電圧に第1の加重値を適用し、クロック周波数に第2の加重値を適用して、加重合算した値が最も少ない候補リソースを最少のリソースとして決定できる。
【0174】
その後、プロセッサは、決定されたNPU別に最少のリソースがNPUの各々に供給されるように、リソースを調節できる(S1130)。プロセッサは、図8に示す第1のリソース810及び/又は第2のリソース820を制御することで、最少のリソースに該当するクロック及び/又は電圧をNPUに供給できる。
【0175】
図12は、本開示の一実施例に係る高頻度証券取引のための作業スケジューリング方法1200を説明するためのフローチャートである。図12に示す各方法は、図8の情報処理システム800のプロセッサ840に含まれたスケジューラ842によって遂行することができる。
【0176】
プロセッサには、高頻度証券取引のための複数の入力データが得られる(S1210)。複数の入力データは、マーケットデータが前処理されたデータであり得る。
【0177】
その後、プロセッサは、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷(workload)を決定できる(S1220)。ここで、許容時間は、注文データが生成されるまで許容される時間として動的に決定することができる。一実施例によれば、プロセッサは、一つ以上のターゲット種目に対するマーケットデータのトラフィックを獲得し、獲得されたトラフィックに基づいて作業完了までの許容時間を決定できる。許容時間の長さ及び可用リソースの量に基づいて作業負荷の大きさを決定できる。許容時間及びハードウェアの可用リソースに基づいて作業負荷を決定する方法については、図13を参照して詳細に説明する。
【0178】
一実施例によれば、プロセッサは、作業負荷を処理するためのハードウェアのリソースを決定し、決定されたリソースをハードウェアに供給できる。ここで、ハードウェアは、少なくとも一つのNPU、メモリ、FPGAなどを含むことができる。プロセッサは、決定されたリソースに基づいて、ハードウェアに供給されるクロックの周波数又は電圧のうちの少なくとも一つを調節できる。一実施例によれば、ハードウェアは、複数のNPUを含むことができ、プロセッサは、複数のNPUのうちの少なくとも一つのNPUに決定された作業負荷を割り当てる。このとき、プロセッサは、作業負荷が割り当てられた少なくとも一つのNPUを識別し、決定されたリソースに基づいて識別された少なくとも一つのNPUに供給されるクロックの速度又は電圧のうちの少なくとも一つを調節できる。
【0179】
続いて、プロセッサは、決定された作業負荷に基づいて、複数の入力データのうちの少なくとも一つの入力データを選択できる(S1230)。
【0180】
その後、プロセッサは、選択された少なくとも一つの入力データを機械学習モデルに適用できる(S1240)。一実施例によれば、ハードウェアは、機械学習モデルの演算のための複数のNPUを含むことができる。このとき、プロセッサは、作業負荷を担当するターゲットNPUを決定し、選択された少なくとも一つの入力データをターゲットNPUに提供できる。ターゲットNPUは、選択された少なくとも一つの入力データを機械学習モデルに入力して、高頻度証券取引のための推論演算を遂行できる。
【0181】
図13は、図12に示すステップS1220をより詳細に説明するためのフローチャートである。プロセッサは、リソースリストから検証対象となるターゲットリソースを選択できる(S1302)。ここで、ターゲットリソースは、NPUに割り当てられる候補リソースであり得る。リソースリストは、互いに異なる複数のリソースを含んで予め生成することができる。リソースは電圧及び/又はクロック周波数を含み、リソースリストに含まれた複数のリソースは、互いに異なる電圧及び/又はクロック周波数を含むことができる。
【0182】
その後、プロセッサは、バッチサイズリストから検証対象となるターゲットバッチサイズを選択できる(S1304)。ここで、ターゲットバッチサイズは、NPUに割り当てられる候補バッチサイズであり得る。バッチサイズリストは、互いに異なる複数のバッチサイズを含んで予め生成することができる。リソースリスト及びバッチサイズリストは、管理者によって生成して情報処理システムに保存し、また、管理者によって更新することができる。後述するように、検証に通過したリソース及びバッチサイズを含む候補作業負荷が、第1の候補作業リストに登録され得る。
【0183】
続いて、プロセッサは、ターゲットリソース及びターゲットバッチサイズに基づいて、必要電力量及び遅延時間を算出できる(S1306)。一実施例によれば、プロセッサは、図9に示す第1のテーブル910を利用して必要電力量を算出でき、図9に示す第2のテーブル920を利用して遅延時間を算出できる。例えば、プロセッサは、ターゲットリソース及びターゲットバッチサイズに相当する必要電力量を図9に示す第1のテーブル910から獲得でき、ターゲットリソース及びターゲットバッチサイズに相当する遅延時間を図9に示す第2のテーブル920から獲得できる。図9に示す第1のテーブル910では、必要電力量を消費電力量(consumed power)として例示しており、図9に示す第2のテーブル920では、遅延時間を機械学習モデルの推論時間(inference time)として例示している。
【0184】
その後、プロセッサは、算出された遅延時間が、許容時間未満であるか否かを判定できる(S1308)。遅延時間が許容時間以上である場合、プロセッサは、バッチサイズリストからターゲットバッチサイズを再選択したり、リソースリストからターゲットリソースを再選択したりできる(S1320)。すなわち、プロセッサは、ターゲットバッチサイズ及びターゲットリソースの組合せに対する検証に失敗したと判定して、ターゲットバッチサイズ及びターゲットリソースに対する新しい組合せが生成されるように、バッチサイズリストからターゲットバッチサイズを再選択したり、リソースリストからターゲットリソースを再選択したりできる。ターゲットバッチサイズを再選択したり、ターゲットリソースを再選択したりする場合、ステップS1306からのプロセスを再度進行できる。
【0185】
反面、ステップS1308の判定の結果、遅延時間が許容時間未満である場合、プロセッサは、算出された必要電力量が可用電力量以下であるか否かを判定できる(S1310)。ここで、可用電力量は、全体電力量から現在供給中である電力量(すなわち、使用済の電力量)を減算して測定できる。必要電力量が可用電力量を超過する場合、プロセッサは、バッチサイズリストからターゲットバッチサイズを再選択したり、リソースリストからターゲットリソースを再選択したりできる(S1320)。すなわち、プロセッサは、ターゲットバッチサイズ及びターゲットリソースの組合せに対する検証に失敗したと判定して、ターゲットバッチサイズ及びターゲットリソースに対する新しい組合せが生成されるように、バッチサイズリストからターゲットバッチサイズを再選択したり、リソースリストからターゲットリソースを再選択したりできる。
【0186】
反面、ステップS1310の判定結果、必要電力量が可用電力量以下である場合、プロセッサは、ターゲットリソース及びターゲットバッチサイズを含む候補作業負荷を生成し、生成された候補作業負荷を第1の候補リストに登録できる(S1312)。すなわち、検証に成功したターゲットリソース及びターゲットバッチサイズの組合せを有する候補作業負荷を第1の候補リストに登録できる。
【0187】
その後、プロセッサは、リソースリストに含まれたリソース及びバッチサイズリストに含まれたバッチサイズが、場合の数によって全部組合わせて検証されたか否かを判定できる(S1314)。すなわち、プロセッサは、リソースリストに含まれたリソースの個数と、バッチサイズリストに含まれたバッチサイズの個数とに基づいて、組合わせる場合の数だけに該当する回数で検証プロセスが全部進行されたか否かを判定できる。例えば、リソースリストに3個のリソースが登録され、バッチサイズリストに3個のバッチサイズが登録される場合、プロセッサは、総9個の組合わせたターゲットリソース及びターゲットバッチサイズの各々に対する検証プロセスが進行されたか否かを判定できる。
【0188】
リソースリストに含まれたリソース及びバッチサイズリストに含まれたバッチサイズが、場合の数によって全部組合わせて検証されなかったと判定される場合、プロセッサは、組合わせないリソース及びバッチサイズを組合わせるように、ターゲットリソース又はターゲットバッチサイズを再選択できる(S1320)。その後、新しく組合わせたターゲットリソース及びターゲットバッチサイズに基づいて、ステップS1306からのプロセスを進行できる。
【0189】
前述したプロセスにより、検証に通過したリソース及びバッチサイズの組合せが、第1の候補リストに登録され得る。検証が遂行されることにより、第1の候補リストに登録された候補作業負荷の各々の遅延時間は許容時間内であり、第1の候補リストに登録された候補作業負荷の各々の必要電力量は可用電力量内であり得る。
【0190】
一方、リソースリストに含まれたリソース及びバッチサイズリストに含まれたバッチサイズが、場合の数によって全部組合わせて検証されたと判定される場合、プロセッサは、第1の候補リストに含まれた候補作業負荷のうちで、機械学習モデルの推論演算に対する作業負荷を決定できる(S1316)。決定された作業負荷に含まれたターゲットリソースは、推論演算のためのハードウェア(例えば、NPU)に割り当てられるリソースであり得る。プロセッサは、決定された作業負荷に含まれたターゲットリソース(割当リソース)に基づいて、作業負荷を担当するNPUにリソースを供給できる。これにより、機械学習モデルの推論演算を遂行するNPUには、ターゲットリソースだけのリソースが供給される。
【0191】
一実施例によれば、プロセッサは、性能指標、リソースの大きさ、遅延時間又はバッチサイズのうちの少なくとも一つに基づいて、機械学習モデルの推論演算に対する作業負荷を決定できる。性能指標の一例として、PPW(Performance Per Watt)を利用できる。本開示は、これに限定されず、PPW以外に多様な指標を性能指標として利用できる。
【0192】
PPWが性能指標として利用される場合、プロセッサは、バッチサイズ、遅延時間及び必要電力量に基づいてPPWを算出できる。次の数1の式がPPWを算出するのに利用される。
【0193】
【数1】
ここで、「PPW」は性能指標の一例であり、「latency」は遅延時間であり、「consumed_power」は必要電力量であり、「batch_size」はバッチサイズである。
【0194】
プロセッサは、候補作業負荷に含まれたバッチサイズ及びリソースに基づいて、遅延時間及び必要電力量を算出できる。このとき、プロセッサは、図9に示す第1の参照テーブル910を利用して必要電力量を算出し、図9に示す第2の参照テーブル920を利用して遅延時間を算出できる。また、プロセッサは、算出された必要電力量、遅延時間及びバッチサイズを数1の式に代入して、候補作業負荷のPPWを性能指標として算出できる。
【0195】
プロセッサは、第1の候補リストに含まれた各々の候補作業負荷の性能指標が算出されると、性能指標が最も高い候補作業負荷を機械学習モデルの推論演算に対する作業負荷として決定できる。
【0196】
他の例として、プロセッサは、第1の候補リストに登録された一つ以上の候補作業負荷の各々に含まれたターゲットリソースに基づいて、最も少ないターゲットリソースを有する候補作業負荷を機械学習モデルの推論演算に対する作業負荷として決定できる。すなわち、プロセッサは、最も少ないリソースを要求する候補作業負荷を機械学習モデルの推論演算に対する作業負荷として決定できる。
【0197】
また他の例として、プロセッサは、第1の候補リストに登録された一つ以上の候補作業負荷の各々と関連付けられた割当リソース及びバッチサイズに基づいて、一つ以上の候補作業負荷の各々の遅延時間を算出した後、算出された遅延時間が最も短い候補作業負荷を推論演算に対する作業負荷として決定できる。すなわち、プロセッサは、最も速く推論できる候補作業負荷を推論演算に対する作業負荷として決定できる。
【0198】
また他の例として、プロセッサは、第1の候補リストに登録された一つ以上の候補作業負荷の各々と関連付けられたバッチサイズに基づいて、最も大きいバッチサイズを有する候補作業負荷を推論演算に対する作業負荷として決定できる。すなわち、プロセッサは、最も大きいバッチサイズに該当する入力データを処理できる候補作業負荷を推論演算に対する作業負荷として決定できる。
【0199】
一方、第1の候補リストには、ターゲットリソース及びバッチサイズが登録されない場合がある。すなわち、ターゲットリソース及びバッチサイズの全ての組合せが検証プロセスを通過しないことにより、第1の候補リストにはどのような候補作業負荷も登録されない場合がある。このとき、プロセッサは、複数の入力データのうち、最も以前の入力データを抽出し、抽出された入力データを規則(rule)に基づいて注文データを生成する規則基盤注文モデルを適用できる。規則基盤注文モデルが適用された入力データをメモリのキューから削除し得る。
【0200】
ここで、規則基盤注文モデルは、機械学習モデルを利用せず、予め定義された規則(rule)に基づいて自動的に注文データを生成するモデルであり得る。例えば、規則基盤注文モデルは、入力規則及び出力規則が一対一対応した規則情報(例えば、数式やモデリングなど)を含むモデルであり得る。規則基盤注文モデルは、入力データから入力規則を獲得し、入力規則に相当する出力規則に基づいて注文データを生成できる。ここで、入力規則は種目、呼値、総合株価指数、取引量などを含むことができ、出力規則は売り又は買い、注文量、価格などを含むことができる。複数の入力規則及び出力規則の対は、管理者により予め定義することができる。
【0201】
一方、作業負荷に関連付けられた少なくとも一つの入力データの入力により、推論演算を遂行中である複数のNPUのうち、少なくとも一つのNPUに残存の可用リソースをさらに供給できる。
【0202】
図14は、本開示の一実施例に係る可用リソースがNPUに追加的に供給される方法1400を説明するためのフローチャートである。図14に示す各ステップは、図8に示す情報処理システム800のプロセッサ840に含まれたリソース制御部844によって遂行することができる。また、図14に示す方法1400は、図12に示す方法1200の以後に進行され得る。
【0203】
プロセッサは、少なくとも一つのNPUに供給した後に残っている残存の可用リソースを測定できる(S1410)。ここで、残存の可用リソースは、少なくとも一つのNPUに供給した後に残っている電圧及び/又はクロック信号を含むことができる。
【0204】
続いて、プロセッサは、少なくとも一つのNPUに供給した後に残っている残存の可用電力量を測定できる(S1420)。例えば、プロセッサは、供給できる最大電力量から提供中である電力量を減算することで、残存の可用電力量を測定できる。
【0205】
次に、プロセッサは、一つ以上のNPUの各々に対する候補リソースを第2の候補リストに登録できる(S1430)。このとき、プロセッサは、推論演算が遂行中であるNPUを識別し、識別された少なくとも一つのNPUの各々に対する候補リソースを第2の候補リストに登録できる。ここで、候補リソースは、NPUに供給されるリソースよりも増加したリソースを有することができる。すなわち、推論演算をより速く処理するために、追加的なリソースが供給されるNPUを選定しなければならないので、候補リソースは、NPUに供給されているリソースよりも増加したリソースを有することができる。ここで、リソースの増加幅は予め決定することができる。
【0206】
その後、プロセッサは、第2の候補リストに登録された少なくとも一つのNPUを識別し、NPUの各々に入力される入力データに対するバッチサイズを識別できる。また、プロセッサは、第2の候補リストに含まれたNPU別の候補リソース及びNPU別のバッチサイズに基づいて、必要電力量である第1の電力量をNPU別に算出できる(S1440)。プロセッサは、図9に示す第1の参照テーブル910を利用して第1の電力量を算出できる。
【0207】
続いて、プロセッサは、NPU別に供給中である第2の電力量を算出できる(S1450)。例えば、プロセッサは、図9に示す第1の参照テーブル910を利用して第2の電力量を算出できる。他の例として、プロセッサは、電圧センサ及び/又は電流センサを利用して、各NPUに供給中である第2の電力量を測定できる。
【0208】
その後、プロセッサは、第1の電力量から第2の電力量を減算した第3の電力量をNPU別に算出できる(S1460)。ここで、第3の電力量は、追加的に供給される電力量であると理解されるべきである。
【0209】
続いて、プロセッサは、第3の電力量が残存の可用電力量を超過するか否かを判定して、残存の可用電力量を超過する第3の電力量を有する候補リソースを第2の候補リストから除去することで、第2の候補リストをフィルタリングできる(S1470)。
【0210】
その後、プロセッサは、第2の候補リストに含まれた少なくとも一つの候補リソースと関連付けられたNPUのうちで、残存の可用リソースが供給されるターゲットNPUを決定できる(S1480)。一実施例によれば、プロセッサは、性能指標、第3の電力量又はバッチサイズのうちの少なくとも一つに基づいて、第2の候補リストに含まれた少なくとも一つの候補リソースと関連付けられたNPUのうちで、一つのターゲットNPUを決定できる。
【0211】
例えば、プロセッサは、第2の候補リストに登録されたNPUの各々に入力される少なくとも一つの入力データに対するバッチサイズを識別し、識別されたNPU別のバッチサイズ及び第2の候補リストに含まれた候補リソースに基づいて、NPU別の追加性能指標を算出できる。このとき、プロセッサは、前記数1の式を利用して、NPU別の追加性能指標を算出できる。具体的に、プロセッサは、各NPU別に既に割り当てられた作業負荷に含まれたバッチサイズ及びリソースに基づいて、遅延時間及び必要電力量を算出し、算出された遅延時間及び必要電力量を前記数1の式に適用して、NPUの各々に対する現在の第1の性能指標を算出できる。また、プロセッサは、識別されたNPU別のバッチサイズ及び第2の候補リストに含まれた候補リソースに基づいて、遅延時間及び必要電力量を算出し、算出された遅延時間及び必要電力量を前記数1の式に適用して、残存のリソースを供給する場合に予想される第2の性能指標をNPU別に算出できる。続いて、プロセッサは、第2の性能指標から第1の性能指標を減算した追加性能指標をNPU別に算出できる。プロセッサは、追加性能指標が最も高いNPUを残存の可用リソースが供給されるターゲットNPUとして決定できる。
【0212】
他の例として、プロセッサは、第2の候補リストに含まれた候補リソースに基づいて、第2の候補リストに登録された一つ以上のNPUの各々に追加される電力量を算出できる。プロセッサは、図9に示す第1の参照テーブル910を参照して、NPU別に追加される電力量を算出できる。具体的に、プロセッサは、各NPU別に既に割り当てられた作業負荷に含まれたバッチサイズ及びリソースに基づいて、第4の電力量を算出できる。ここで、第4の電力量は、現在NPUに供給される電力量であり得る。また、プロセッサは、識別されたNPU別のバッチサイズ及び第2の候補リストに含まれた候補リソースに基づいて、第5の電力量をNPU別に算出できる。ここで、第5の電力量は、候補リソースを供給する場合に必要な電力量であり得る。続いて、プロセッサは、第5の電力量から第4の電力量を減算した追加電力量をNPU別に算出できる。プロセッサは、追加電力量が最も少ないNPUを残存の可用リソースが供給されるターゲットNPUとして決定できる。
【0213】
また他の例として、プロセッサは、第2の候補リストに登録されたNPUの各々に入力される少なくとも一つの入力データに対するバッチサイズを識別し、識別されたバッチサイズのうちで、最も大きいバッチサイズを有するNPUを残存の可用リソースが供給されるターゲットNPUとして決定できる。
【0214】
ターゲットNPUが決定されることに応じて、プロセッサは、ターゲットNPUに残存の可用リソースの一部又は全部を供給できる(S1490)。一実施例において、プロセッサは、ターゲットNPUと関連付けられた候補リソースに基づいて、ターゲットNPUに供給するリソースの量を決定し、決定されたリソースの量だけの残存の可用リソースをターゲットNPUに供給できる。例えば、プロセッサは、図8に示す第1のリソース810及び/又は第2のリソース820を制御して、ターゲットNPUにクロック信号及び/又は電圧を供給できる。
【0215】
図15は、本開示の一実施例に係る証券取引生成と関連付けられた任意のコンピューティング装置1500の構成図である。例えば、コンピューティング装置1500は、情報処理システム110及び/又はユーザ端末(図示せず)と関連付けられる。図に示すように、コンピューティング装置1500は、一つ以上のプロセッサ1520、バス1510、通信インタフェース1530、プロセッサ1520により遂行されるコンピュータプログラム1560をロード(load)するメモリ1540、及びコンピュータプログラム1560を保存するストレージ1550を含むことができる。ただし、図15は、本開示の実施例と関連付けられた構成要素のみを示している。したがって、本開示が属する技術分野における当業者であれば、図15に示す構成要素以外の汎用的な構成要素等をさらに含むこともできることが分かるであろう。
【0216】
プロセッサ1520は、コンピューティング装置1500の各構成の全般の動作を制御する。プロセッサ1520は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、MCU(Micro Controller Unit)、GPU(Graphic Processing Unit)、NPU(Neural Processing Unit)又は本開示の技術分野における公知の任意の形態のプロセッサを含んで構成することができる。また、プロセッサ1520は、本開示の実施例等による方法を実行するための少なくとも一つのアプリケーション又はプログラムに対する演算を遂行できる。コンピューティング装置1500は一つ以上のプロセッサを具備できる。例えば、コンピューティング装置1500は、FPGAで具現化されたプロセッサ、ASICで具現化された機械学習モデルのための専用加速器(NPU ASIC)を含むことができる。
【0217】
メモリ1540は、各種データ、命令及び/又は情報を保存できる。メモリ1540は、本開示の多様な実施例による方法/動作を実行するために、ストレージ1550から一つ以上のコンピュータプログラム1560をロードできる。メモリ1540は、RAMのような揮発性メモリで具現化することができるが、本開示の技術的範囲はこれに限定されるものではない。
【0218】
バス1510は、コンピューティング装置1500の構成要素間の通信機能を提供できる。バス1510は、アドレスバス(Address Bus)、データバス(Data Bus)及び制御バス(Control Bus)等、多様な形態のバスで具現化することができる。
【0219】
通信インタフェース1530は、コンピューティング装置1500の有無線インターネット通信を支援できる。また、通信インタフェース1530は、インターネット通信以外の多様な通信方式を支援することもできる。このために、通信インタフェース1530は、本開示の技術分野における公知の通信モジュールを含んで構成することができる。
【0220】
ストレージ1550は、一つ以上のコンピュータプログラム1550を非一時的に保存できる。ストレージ1550は、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、フラッシュメモリなどのような不揮発性メモリ、ハードディスク、脱着型ディスク又は本開示が属する技術分野における公知の任意の形態のコンピュータで読取り可能な記録媒体を含んで構成することができる。
【0221】
コンピュータプログラム1560は、メモリ1540にロードするとき、プロセッサ1520が本開示の多様な実施例による動作/方法を遂行するようにする一つ以上のインストラクション(instructions)を含むことができる。すなわち、プロセッサ1520は、一つ以上のインストラクションを実行することで、本開示の多様な実施例による動作/方法を遂行できる。例えば、プロセッサ1520は、メモリ1540の一つ以上のインストラクションを実行することで、一つ以上のターゲット種目に対するマーケットデータのトラフィック、又は、マーケットデータに基づいて遂行される機械学習モデルを利用した演算複雑度のうちの少なくとも一つを含むコンテクスト情報を受信し、受信されたコンテクスト情報に基づいて、ハードウェアに対する処理性能を変更するか否かを判定し、処理性能を変更する判定決定に基づいて、ハードウェアに供給されるリソースを変更するように構成することができる。他の例として、プロセッサ1520は、メモリ1540の一つ以上のインストラクションを実行することで、高頻度証券取引のための複数の入力データを獲得し、作業完了までの許容時間及びハードウェアの可用リソースに基づいて、機械学習モデルの推論演算に対する作業負荷を決定し、決定された作業負荷に基づいて、複数の入力データのうちの少なくとも一つの入力データを選択し、選択された少なくとも一つの入力データを機械学習モデルに適用するように構成することができる。
【0222】
前述したフローチャート及び前述した説明は、一例に過ぎず、一部の実施例では異なるように具現化することができる。例えば、一部の実施例では、各ステップの順序が変化したり、一部のステップが繰り返して遂行されたり、一部のステップが省略されたり、一部のステップが追加されたりできる。
【0223】
前述した方法は、コンピュータで実行するために、コンピュータ読取り可能な記録媒体に保存されたコンピュータプログラムとして提供され得る。媒体は、コンピュータで実行可能なプログラムを継続的に保存し、または、実行又はダウンロードのために一時保存するものであり得る。また、媒体は、単一又は多数のハードウェアが結合された形態の多様な記録手段又は保存手段であり得るが、あるコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散して存在するものであり得る。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスクや磁気テープのような磁気媒体、CD-ROMやDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、ROM、RAM、フラッシュメモリなどを含み、プログラム命令語が保存されるように構成されたものが挙げられる。また、他の媒体の例としては、アプリケーションを流通するアプリストアやその他の多様なソフトウェアを供給乃至流通するサイト、サーバーなどで管理する記録媒体乃至保存媒体も挙げられる。
【0224】
本開示の方法、動作、又は技法は、多様な手段により具現化することができる。例えば、このような技法は、ハードウェア、ファームウェア、ソフトウェア、若しくは、これらの組合せで具現化することができる。本願の開示により説明された多様な例示的な論理的ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、若しくは、両方の組合せで具現化することができることを、当業者であれば理解できるはずである。ハードウェア及びソフトウェアのこのような相互の代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路、及びステップが、それらの機能的観点から一般的に前述された。そのような機能が、ハードウェアとして具現化されるか、若しくは、ソフトウェアとして具現化されるかは、特定アプリケーション及び全体システムに付加される設計要求事項によって変化する。当業者は、各々の特定アプリケーションのために、多様な方式により説明された機能を具現化することもできるが、そのような具現化は、本開示の範囲から逸脱するものと解釈してはならない。
【0225】
ハードウェアの具現化において、技法の遂行に利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号処理デバイス(digital signal processing devices DSPD)、プログラム可能な論理デバイス(programmable logic devices PLD)、フィールドプログラム可能なゲートアレイ(field programmable gate arrays FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロプロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、若しくは、これらの組合せにおいても具現化され得る。
【0226】
したがって、本開示により説明された多様な例示的な論理ブロック、モジュール、及び回路は、汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能な論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、若しくは、本願に説明された機能を遂行するように設計されたもの等の任意の組合せで、具現化又は遂行されることもできる。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、制御器、マイクロ制御器、若しくは、状態マシンであり得る。プロセッサは、また、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと関連付けられる一つ以上のマイクロプロセッサ、若しくは、任意の他の構成の組合せで具現化されることもできる。
【0227】
ファームウェア及び/又はソフトウェアの具現化において、技法は、RAM(random access memory)、ROM(read-only memory)、NVRAM(non-volatile random access memory)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、CD(compact disc)、磁気又は光学データストレージデバイスなどのようなコンピュータ読取り可能な媒体上に保存された命令で具現化することができる。命令は、一つ以上のプロセッサによって実行可能であり、プロセッサ等が、本開示に説明された機能の特定様態を遂行するようにできる。
【0228】
ソフトウェアとして具現化される場合、前記技法は、一つ以上の命令又はコードとしてコンピュータ読取り可能な媒体上に保存されたり、コンピュータ読取り可能な媒体を介して転送されたりできる。コンピュータ読取り可能な媒体は、ある場所から他の場所にコンピュータプログラムの転送を容易にする任意の媒体を含み、コンピュータ保存媒体及び通信媒体の両方を含む。保存媒体は、コンピュータによってアクセスできる任意の利用可能な媒体であり得る。非制限的な例として、このようなコンピュータ読取り可能な媒体は、RAM、ROM、EEPROM、CD-ROMや他の光学ディスクストレージ、磁気ディスクストレージや他の磁気ストレージデバイス、若しくは、所望のプログラムコードを命令又はデータ構造の形態で移送又は保存するために使用されることができ、コンピュータによってアクセスできる任意の他の媒体を含むことができる。また、任意の接続がコンピュータ読取り可能な媒体として適切に使用され得る。
【0229】
例えば、ソフトウェアが同軸ケーブル、光ファイバーケーブル、鉛線、デジタル加入者回線(DSL)、又は、赤外線、無線及びマイクロ波のような無線技術を用いて、ウェブサイト、サーバー又は他の遠隔ソースから転送される場合、同軸ケーブル、光ファイバーケーブル、鉛線、デジタル加入者回線、又は、赤外線、無線及びマイクロ波などのような無線技術は、媒体の定義内に含まれる。本願で使用されたディスク(disk)及びディスク(disc)は、CD、レーザーディスク(登録商標)、光ディスク、DVD(digital versatile disc)、フロッピー(登録商標)ディスク及びブルーレイディスクを含み、ここで、通常、ディスク(disk)は磁気的にデータを再生するのに対し、ディスク(disc)はレーザーを用いて光学的にデータを再生する。前記組合せ等も、コンピュータ読取り可能な媒体等の範囲内に含まれなければならない。
【0230】
ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、移動式ディスク、CD-ROM、又は、公知された任意の異なる形態の保存媒体内に常駐することもできる。例示的な保存媒体は、プロセッサが保存媒体から情報を読取る、或いは、保存媒体に情報を書込むように、プロセッサに連結することができる。代替的に、保存媒体はプロセッサに統合されることもできる。プロセッサ及び保存媒体はASIC内に存在することもできる。ASICはユーザ端末内に存在することもできる。代替的に、プロセッサ及び保存媒体はユーザ端末で個別構成要素として存在することもできる。
【0231】
前述した実施例は、一つ以上の独立型コンピュータシステムで現在開示された主題の態様を活用するものとして記述しているが、本開示は、これに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境によって具現化することができる。さらには、本開示における主題の態様は、複数のプロセッシングチップや装置で具現化することもでき、ストレージは、複数の装置にわたって同様に影響を受けることもできる。このような装置は、PC、ネットワークサーバー及び携帯用装置を含むこともできる。
【0232】
本明細書では、本開示が一部の実施例によって説明されてきたが、本開示の発明が属する技術分野における通常の当業者が理解し得る本開示から逸脱しない範囲内で、多様な変形や変更が可能である。また、そのような変形や変更は、本明細書に添付された特許請求の範囲内に属するものと理解されるべきである。
【符号の説明】
【0233】
110 情報処理システム
120 第1の証券取引所
130 第2の証券取引所
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15