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

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

▶ 中科馭数(北京)科技有限公司の特許一覧

特開2024-155860データ処理方法、機器及びコンピュータ可読記憶媒体
<>
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図1
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図2
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図3
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図4
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図5
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図6
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図7
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図8
  • 特開-データ処理方法、機器及びコンピュータ可読記憶媒体 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024155860
(43)【公開日】2024-10-31
(54)【発明の名称】データ処理方法、機器及びコンピュータ可読記憶媒体
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241024BHJP
   G06F 16/25 20190101ALI20241024BHJP
   G06F 16/2455 20190101ALI20241024BHJP
【FI】
G06F9/50 120A
G06F16/25
G06F16/2455
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2024068054
(22)【出願日】2024-04-19
(31)【優先権主張番号】202310429904.5
(32)【優先日】2023-04-20
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】524040568
【氏名又は名称】中科馭数(北京)科技有限公司
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【弁理士】
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】李 晟
(72)【発明者】
【氏名】耿 嘉
(72)【発明者】
【氏名】陳 岩
(72)【発明者】
【氏名】張 宇
(72)【発明者】
【氏名】▲イェン▼ 貴海
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175HA04
5B175KA04
(57)【要約】      (修正有)
【課題】計算能力を高め、さらにデータ処理能力を向上させるデータ処理方法、装置、機器及びコンピュータ可読記憶媒体を提供する。
【解決手段】方法は、中央処理装置によって伝送された入力データを受信することと、前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとすることと、前記出力データを前記中央処理装置に伝送することと、を含む。加速カードによって入力データにハッシュ結合演算を行い、すなわち並列演算によって計算能力を向上させ、それにより、データ処理の効率を向上させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
データ処理方法であって、
中央処理装置によって伝送された入力データを受信することと、
前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとすることと、
前記出力データを前記中央処理装置に伝送することとを含むことを特徴とするデータ処理方法。
【請求項2】
前記入力データ及び前記出力データは、コラムデータであり、前記入力データ及び前記出力データの形はアレイ形であることを特徴とする請求項1に記載の方法。
【請求項3】
前記方法は、前記中央処理装置によって伝送された前記入力データを受信する前に、中央処理装置に接続することをさらに含み、前記中央処理装置は入力データを取得し、且つ前記入力データを加速カードに伝送するために用いられることを特徴とする請求項2に記載の方法。
【請求項4】
前記加速カードは、加速コア及びメモリを含み、一次キャッシュデータが前記加速コアに記憶され、前記入力データ、前記出力データ、二次キャッシュデータは、前記メモリに記憶されることを特徴とする請求項3に記載の方法。
【請求項5】
前記入力データに対してハッシュ結合演算を行って、目標演算結果を得ることは、
前記加速コアが前記メモリから前記入力データを読み取ることと、
前記入力データのハッシュ値及び前記ハッシュ値の数を計算することと、
前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立することと、
前記ハッシュテーブルに基づいて前記入力データにハッシュ結合演算を行い、目標演算結果を取得することとを含むことを特徴とする請求項4に記載の方法。
【請求項6】
前記入力データの前記ハッシュ値及び前記ハッシュ値の数を計算することは、前記入力データ及びパラメータセットに基づいて、前記入力データのハッシュ値及び前記ハッシュ値の数を計算することを含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立することは、
前記ハッシュ値及び前記ハッシュ値の数に基づいて、前記入力データの一次キャッシュ深さ及び二次キャッシュ深さを確定し、前記一次キャッシュ深さは一次キャッシュデータに対応するハッシュバケットであり、前記二次キャッシュ深さは二次キャッシュデータに対応するハッシュバケットであることと、
前記ハッシュ値、前記一次キャッシュ深さ及び前記二次キャッシュ深さに基づいて、ハッシュテーブルを確立することとを含むことを特徴とする請求項5に記載の方法。
【請求項8】
電子機器であって、
メモリと、
プロセッサと、
コンピュータプログラムとを含み、
前記コンピュータプログラムは前記メモリに記憶され、請求項1~7のいずれか一項に記載のデータ処理方法を実現するように前記プロセッサによって実行されるように構成されることを特徴とする電子機器。
【請求項9】
コンピュータプログラムが記憶されたコンピュータ可読記録媒体であって、前記コンピュータプログラムは、プロセッサによって実行されると、請求項1~7のいずれか一項に記載のデータ処理方法を実現することを特徴とするコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(相互参照)
本開示は、2023年4月20日に提出された出願番号が202310429904.5で名称が「データ処理方法、機器及びコンピュータ可読記憶媒体」である中国特許出願の優先権を主張し、その内容のすべては、参照により本出願に組み込まれる。
【0002】
(技術分野)
本開示は、コンピュータ技術分野に関し、特に、データ処理方法、装置、機器及びコンピュータ可読記憶媒体に関する。
【背景技術】
【0003】
データベースは人工知能、クラウドコンピューティング、ビッグデータ処理などの重要な作業負荷であり、インターネット技術の高速発展に伴い、データの大量発生に伴い、データベースのパフォーマンス需要が高まっている。技術の発展に伴い、ディスクの読み書き能力とネットワーク帯域幅の性能が絶えず向上した結果、データベース分野の性能のボトルネックは計算力に移った。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術において、中央処理装置(Central Processing Unit、CPU)によってデータを処理することが一般的であり、この処理方法は、大量のデータサービスをサポートするのに十分な計算力を提供できない。したがって、どうやって計算能力を高めてデータ処理能力を向上させるかは早急に解決すべき課題である。
【0005】
本開示は、上記課題を解決するために、または少なくとも部分的に解決するために、データ処理方法、装置、機器及びコンピュータ可読記憶媒体を提供し、計算能力を高め、さらにデータ処理能力を向上させる。
【課題を解決するための手段】
【0006】
第1態様では、本開示の実施例は、データ処理方法を提供し、
中央処理装置によって伝送された入力データを受信することと、
前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとすることと、
前記出力データを前記中央処理装置に伝送することとを含む。
【0007】
第2態様では、本開示の実施例は、データ処理装置を提供し、
中央処理装置によって伝送された入力データを受信するための受信モジュールと、
前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとするための演算モジュールと、
前記出力データを前記中央処理装置に伝送するための伝送モジュールとを含む。
【0008】
第3態様では、本開示の実施例は、電子機器を提供し、
メモリと、
プロセッサと、
コンピュータプログラムとを含み、
前記コンピュータプログラムは前記メモリに記憶され、第1態様に記載の方法を実現するように前記プロセッサによって実行されるように構成される。
【0009】
第4態様では、本開示の実施例は、コンピュータプログラムが記憶されたコンピュータ可読記録媒体を提供し、前記コンピュータプログラムは、プロセッサによって実行されて、第1態様に記載の方法を実現する。
【0010】
第5態様では、本開示の実施例は、コンピュータプログラム又は命令を含むコンピュータプログラム製品をさらに提供し、該コンピュータプログラムまたは命令は、プロセッサによって実行されると、第1態様に記載の方法を実現する。
【発明の効果】
【0011】
本開示の実施例が提供するデータ処理方法、装置、機器及びコンピュータ可読記録媒体は、中央処理装置が伝送した入力データを受信することにより、入力データを加速カードに伝送し、入力データに対してハッシュ結合演算を行い、すなわち並列演算によって計算能力を向上させ、加速カードが入力データをリアルタイムに処理することを保証し、入力データの目標演算結果を得て、目標演算結果を出力データとし、データの処理効率を向上させ、出力データを前記中央処理装置に伝送し、中央処理装置に出力データを取得させ、中央処理装置による出力データの記憶と管理を容易にし、データ管理能力を向上させる。
【図面の簡単な説明】
【0012】
ここでの図面は明細書に組み込まれ、本明細書の一部を構成し、本開示に符合する実施例を示し、明細書とともに本開示の原理を説明するために使用される。
【0013】
本開示の実施例または従来技術における技術的解決手段をより明確に説明するために、以下では、実施例または従来技術の説明において使用する必要がある図面を簡単に説明し、明らかに、当業者にとっては、創造的な労働性を払わずに、これらの図面に基づいて他の図面を得ることができる。
【0014】
図1】本開示の実施例によって提供されるデータ処理方法のフローチャートである。
図2】本開示の実施例によって提供される応用シーンの概略図である。
図3】本開示の実施例によって提供される応用シーンの概略図である。
図4】本開示の実施例によって提供される入力データの概略図である。
図5】本開示の実施例によって提供されるハッシュテーブルの概略図である。
図6】本開示の別の実施例によって提供されるデータ処理方法のフローチャートである。
図7】本開示の実施例によって提供される加速コアのアーキテクチャ図である。
図8】本開示の実施例によって提供されるデータ処理装置の概略構成図である。
図9】本開示の実施例によって提供される電子機器の概略構成図である。
【発明を実施するための形態】
【0015】
本開示の上述の目的、特徴及び利点をより明確に理解することができるように、以下に本開示の解決策をさらに説明する。なお、矛盾することなく、本開示の実施例及び実施例における特徴を互いに組み合わせることができる。
【0016】
以下の説明では、本開示を完全に理解するために、多くの具体的な詳細を記載するが、本開示は、本明細書に記載するもの以外の方法で実施することもできる。また、本明細書における実施例が本開示の一部の実施例に過ぎず、全ての実施例ではないことは明らかである。
【0017】
データベースは人工知能、クラウドコンピューティング、ビッグデータ処理などの重要な作業負荷であり、インターネット技術の高速発展に伴い、データの大量発生に伴い、データベースのパフォーマンス需要が高まっている。技術の発展に伴い、ディスクの読み書き能力とネットワーク帯域幅の性能が絶えず向上した結果、データベース分野の性能のボトルネックは計算力に移った。
【0018】
従来技術において、中央処理装置(Central Processing Unit、CPU)によってデータを処理することが一般的であり、この処理方法は、大量のデータサービスをサポートするのに十分な計算力を提供できない。したがって、どうやって計算能力を高めてデータ処理能力を向上させるかは早急に解決すべき課題である。この問題に対して、本開示の実施例はデータ処理方法を提供し、以下、具体的な実施例に関連して該方法を説明する。
【0019】
該方法は、ソフトウェア及び/またはハードウェアで実装可能なデータ処理装置によって実行することができ、このデータ処理装置は、サーバまたは端末などの電子機器に設置することができ、ここでは、端末は具体的に携帯電話、パソコンやタブレットコンピュータなどを含む。また、該方法は、中央処理装置(Central Processing Unit、CPU)21と加速カード22を含む図2に示す応用シーンに応用することができる。本開示の実施例によって提供されるデータ処理方法は、他のシーンにも応用できることが理解できる。
【0020】
以下、図2に示す応用シーンに合わせて、図1に示されるデータ処理方法を説明し、例えば、図2における加速カード22は該方法を実行できる。該方法は以下の具体的なステップを含む。
【0021】
S101、中央処理装置によって伝送された入力データを受信する。
【0022】
中央処理装置(Central Processing Unit、 CPU)はコンピュータシステムの演算と制御の核として、情報処理、プログラム実行の最終実行ユニットである。
【0023】
図2に示すように、CPUが入力データを取得した後、入力データを加速カードに伝送し、加速カードはCPUによって伝送された入力データを受信する。
【0024】
S102、前記入力データに対してハッシュ結合演算を行い、目標演算結果を得て、前記目標演算結果を出力データとする。
【0025】
ハッシュ結合アルゴリズムは、ナチュラル結合やその他の結合操作を実行するために使用される。ハッシュ結合アルゴリズムの背後にある概念は、与えられた各関係のタプルを集合に分割することである。パーティションは、結合プロパティ上の同じハッシュ値に基づいて完成されるものである。ハッシュ関数は、ハッシュ値を提供する。アルゴリズムにハッシュ関数を用いる主な目的は、比較回数を減らし、完成関係での結合操作の効率を向上させることである。
【0026】
加速カードは、上記入力データに対してハッシュ結合演算を行い、目標演算結果を得て、前記目標演算結果を出力データとする。
【0027】
S103、前記出力データを前記中央処理装置に伝送する。
【0028】
加速カードは出力データをCPUに伝送し、CPUに出力データを得させ、出力データに対して記憶と管理を行う。
【0029】
本開示の実施例は、中央処理装置が伝送した入力データを受信することにより、入力データを加速カードに伝送し、入力データに対してハッシュ結合演算を行い、すなわち並列演算によって計算能力を向上させ、加速カードが入力データをリアルタイムに処理することを保証し、入力データの目標演算結果を得て、目標演算結果を出力データとし、データの処理効率を向上させ、出力データを前記中央処理装置に伝送し、中央処理装置に出力データを取得させ、中央処理装置による出力データの記憶と管理を容易にし、データ管理能力を向上させる。
【0030】
いくつかの実施例では、前記入力データ及び前記出力データは、コラムデータであり、前記入力データ及び前記出力データの形はアレイ形である。
【0031】
入力データ及び出力データは、コラムデータであり、具体的には、入力データ及び出力データは、Parquetのような1次元コラムデータであってもよい。入力データ及び出力データの形はアレイ形であり、具体的には、入力データの形は、入力データのデータ長、入力データの演算オペレータタイプ及び入力データのデータ類を含み、出力データの形は、出力データのデータ長、出力データの演算オペレータ及び出力データのデータタイプを含む。
【0032】
ここで、前記方法は、中央処理装置によって伝送された入力データを受信する前に、中央処理装置に接続することをさらに含み、前記中央処理装置は入力データを取得し、かつ前記入力データを加速カードに伝送するために用いられる。
【0033】
PCIEは高速シリアルポイントツーポイントデュアルチャネル高帯域幅伝送に属し、接続された機器は専用チャネル帯域幅を割り当て、バス帯域幅を共有しておらず、主にアクティブ電源管理、エラー報告、エンドツーエンドの信頼性伝送、ホットスワップ及びサービス品質(QOS)などの機能をサポートし、例えば、ビデオカードなどである。
【0034】
加速カードを標準的な高速シリアルコンピュータ拡張バス標準(peripheral component interconnect express、PCIE)スロットによってCPUサーバに挿入することで、加速カードと中央処理装置との接続を構築し、CPUが入力データを取得した後、入力データを加速カードに伝送し、加速カードは、CPUによって伝送された入力データを受信する。
【0035】
任意選択的に、前記加速カードは加速コアとメモリを含み、一次キャッシュデータは前記加速コアに記憶され、前記入力データ、前記出力データ、二次キャッシュデータは、前記メモリに記憶される。
【0036】
具体的には、図3に示すように、加速カードは、加速コア及びメモリを含み、具体的には、メモリは、ダブルレート同期ダイナミックランダムアクセスメモリDDRであってもよく、加速コアは、ハッシュ結合コアであってもよい。ここでは、一次キャッシュデータは加速コアに記憶され、入力データ、出力データ、二次キャッシュデータはメモリDDRに記憶される。
【0037】
ここでは、前記入力データにハッシュ結合演算を行い、目標演算結果を取得することは、前記加速コアが前記メモリから前記入力データを読み取ることと、前記入力データのハッシュ値及び前記ハッシュ値の数を計算することと、前記ハッシュ値及び前記ハッシュ値の数に基づいてハッシュテーブルを確立することと、前記ハッシュテーブルに基づいて前記入力データにハッシュ結合演算を行い、目標演算結果を取得することとを含む。
【0038】
具体的には、図3に示すように、CPUは入力データを取得した後、入力データを加速カードにおけるメモリに伝送し、メモリは、CPUから伝送された入力データを受信し、加速カードにおける加速コアが入力データを読み取り、入力データのハッシュ値とハッシュ値の数を計算し、ハッシュ値の数はハッシュバケットの深さと言ってもよく、ハッシュ値とハッシュ値の数に応じて、ハッシュテーブルを確立し、ハッシュテーブルに基づいて入力データにハッシュ結合演算を行い、それにより中間演算結果及び目標演算結果を取得し、中間演算結果は一次キャッシュデータ及び二次キャッシュデータを含み、一次キャッシュデータを加速コアに記憶し、二次キャッシュデータをメモリDDRに記憶し、目標演算結果はすなわち出力データであり、加速コアは出力データを加速カードにおけるメモリに送信し、これにより、CPUは、加速カードによって出力データを得ることができる。
【0039】
任意選択的に、前記入力データのハッシュ値及び前記ハッシュ値の数を計算することは、前記入力データ及びパラメータセットに基づいて、前記入力データのハッシュ値及び前記ハッシュ値の数を計算することを含む。
【0040】
具体的には、パラメータセットは予め設定されており、入力データ及びパラメータセットに基づいて、入力データのハッシュ値及びハッシュ値の数を計算することができる。
【0041】
例示的には、図4に示すように、入力データが[1,2,7,9,5,1,4,2]である場合、入力データのインデックス値は[0,1,2,3,4,5,6,7]であり、パラメータセットと入力データに基づいて、ハッシュ値の数が4であると確定し、入力データのハッシュ値が[1,2,3,1,1,1,0,2]と算出する。
【0042】
任意選択的に、前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立することは、前記ハッシュ値及び前記ハッシュ値の数に基づいて、前記入力データの一次キャッシュ深さ及び二次キャッシュ深さを確定することを含み、前記一次キャッシュ深さは、キャッシュデータに対応するハッシュバケットであり、前記二次キャッシュ深さはオーバーフローデータに対応するハッシュバケットであることと、前記ハッシュ値、前記一次キャッシュ深さ及び前記二次キャッシュ深さに基づいて、ハッシュテーブルを確立することとを含む。
【0043】
具体的には、入力データ、入力データのハッシュ値、入力データのインデックス値に基づいて、入力データの一次キャッシュ深さと二次キャッシュ深さを確定し、ここでは、一次キャッシュ深さは一次キャッシュデータに対応するハッシュバケットであり、二次キャッシュ深さは二次キャッシュデータに対応するハッシュバケットであり、二次キャッシュデータはオーバーフローデータと呼ぶこともでき、ハッシュ値、一次キャッシュ深さ及び二次キャッシュ深さに基づいて、ハッシュテーブルを確立する。
【0044】
例示的には、入力データが図4に示す[1,2,7,9,5,1,4,2]である場合、入力データのハッシュ値、一次キャッシュ深さと二次キャッシュ深さに基づいてハッシュテーブルを確立し、ハッシュテーブルは図5に示すように、ハッシュ値の数は4であり、一次キャッシュ深さは2であり、二次キャッシュ深さは4であり、入力データの一次キャッシュ深さと入力データの二次キャッシュ深さに基づいて入力データ深さカウンタ、すなわちハッシュバケット深さカウンタを計算し、具体的には、入力データ深さカウントは、入力データの一次キャッシュ深さと入力データの二次キャッシュ深さとの和である。
【0045】
本開示の実施例は、加速カード並列演算により計算能力を向上させ、命令ではなく加速カードハードウェアロジックによりパイプライン処理を実現し、加速コアがクロック周期ごとにデータを処理することを保証し、すなわち加速コアがリアルタイムにデータを処理し、メモリとキャッシュを組み合わせることで、データがオーバーフローすることなくシステムの加速性能を向上させることを保証する。
【0046】
図6は、本開示の別の実施例によって提供されるデータ処理方法のフローチャートであり、図6に示すように、該方法は、以下の複数のステップを含む。
【0047】
S601、中央処理装置に接続し、前記中央処理装置は入力データを取得し、且つ前記入力データを加速カードに伝送するために用いられ、前記加速カードは、加速コア及びメモリを含む。
【0048】
加速カードを標準的な高速シリアルコンピュータ拡張バス標準(peripheral component interconnect express、PCIE)スロットによってCPUサーバに挿入することで、加速カードと中央処理装置との接続を構築し、CPUが入力データを取得した後、入力データを加速カードに伝送し、加速カードは、CPUによって伝送された入力データを受信する。ここでは、加速カードは、加速コア及びメモリを含み、具体的には、メモリは、ダブルレート同期ダイナミックランダムアクセスメモリDDRであってもよく、加速コアは、ハッシュ結合コアであってもよい。
【0049】
S602、前記中央処理装置によって伝送された入力データを受信する。
【0050】
CPUは入力データを取得した後、入力データを加速カードにおけるメモリに伝送し、メモリは、CPUによって伝送された入力データを受信する。
【0051】
S603、前記加速コアは、前記メモリから前記入力データを読み取る。
【0052】
加速カードにおける加速コアはメモリから入力データを読み取る。
【0053】
S604、前記入力データ及びパラメータセットに基づいて、前記入力データのハッシュ値及びハッシュ値の数を計算する。
【0054】
パラメータセットは予め設定されており、入力データ及びパラメータセットに基づいて、入力データのハッシュ値及びハッシュ値の数を計算することができる。
【0055】
例示的には、図4に示すように、入力データが[1,2,7,9,5,1,4,2]である場合、入力データのインデックス値は[0,1,2,3,4,5,6,7]であり、パラメータセットと入力データに基づいて、ハッシュ値の数が4であると確定し、入力データのハッシュ値が[1,2,3,1,1,1,0,2]と算出する。
【0056】
S605、前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立する。
【0057】
任意選択的に、前記ハッシュ値及び前記ハッシュ値の数に基づいて、前記入力データの一次キャッシュ深さ及び二次キャッシュ深さを確定することを含み、前記一次キャッシュ深さは、一次キャッシュデータに対応するハッシュバケットであり、前記二次キャッシュ深さは二次オーバーフローデータに対応するハッシュバケットであり、前記ハッシュ値、前記一次キャッシュ深さ及び前記二次キャッシュ深さに基づいて、ハッシュテーブルを確立する。
【0058】
具体的には、入力データ、入力データのハッシュ値、入力データのインデックス値に基づいて、入力データの一次キャッシュ深さと二次キャッシュ深さを確定し、ここでは、一次キャッシュ深さは一次キャッシュデータに対応するハッシュバケットであり、二次キャッシュ深さは二次キャッシュデータに対応するハッシュバケットであり、二次キャッシュデータはオーバーフローデータと呼ぶこともでき、ハッシュ値、一次キャッシュ深さ及び二次キャッシュ深さに基づいて、ハッシュテーブルを確立する。
【0059】
例示的には、入力データが図4に示す[1,2,7,9,5,1,4,2]である場合、入力データのハッシュ値、一次キャッシュ深さと二次キャッシュ深さに基づいてハッシュテーブルを確立し、ハッシュテーブルは図5に示すように、ハッシュ値の数は4であり、一次キャッシュ深さは2であり、二次キャッシュ深さは4であり、入力データの一次キャッシュ深さと入力データの二次キャッシュ深さに基づいて入力データ深さカウンタ、すなわちハッシュバケット深さカウンタを計算し、具体的には、入力データ深さカウントは、入力データの一次キャッシュ深さと入力データの二次キャッシュ深さとの和である。
【0060】
S606、前記ハッシュテーブルに基づいて前記入力データに対してハッシュ結合演算を行い、目標演算結果を得て、前記目標演算結果を出力データとする。
【0061】
ハッシュテーブルに基づいて入力データにハッシュ結合演算を行い、それにより中間演算結果及び目標演算結果を取得し、中間演算結果は即ち一次キャッシュデータ及び二次キャッシュデータであり、一次キャッシュデータを加速コアに記憶し、二次キャッシュデータをメモリDDRに記憶し、目標演算結果は入力データ、一次キャッシュデータ及び二次キャッシュデータによって計算して得たものであり、目標演算結果は即ち出力データであり、加速コアは、出力データを加速カードにおけるメモリに送信する。
【0062】
S607、前記出力データを前記中央処理装置に伝送する。
【0063】
業界が計算力に対する需要の高まりにつれて、ますます多くの計算プラットフォームがCPU、GPU、ASIC、FPGAなどの多種類の異なる計算ユニットを導入し始めて計算を加速し、それに応じて、ヘテロジニアスコンピューティングが生まれた。ヘテロジニアスコンピューティングの核は「ヘテロジニアス」の二字で、つまり異なるプロセスアーキテクチャ、異なる命令セット、異なる機能のハードウェアを組み合わせることで、計算力を向上させることである。例えば、チップレベル(SoC)ヘテロジニアスコンピューティング、ボードレベル統合ヘテロジニアスコンピューティング、システムレベルヘテロジニアスコンピューティングなどである。
【0064】
メモリは出力データを、PCIEスロットを介して中央処理装置に伝送し、CPUに出力データを得させ、それにより、ヘテロジニアスコンピューティングを完了し、出力データに対して記憶と管理を行う。
【0065】
本開示の実施例は、中央処理装置が伝送した入力データを受信することにより、入力データを加速カードに伝送し、入力データに対してハッシュ結合演算を行い、すなわち並列演算によって計算能力を向上させ、加速カードが入力データをリアルタイムに処理することを保証し、入力データの目標演算結果を得て、目標演算結果を出力データとし、データの処理効率を向上させ、出力データを前記中央処理装置に伝送し、中央処理装置に出力データを取得させ、中央処理装置による出力データの記憶と管理を容易にし、データ管理能力を向上させる。
【0066】
図7は、本開示の実施例によって提供される加速コアのアーキテクチャ図であり、図7に示すように、ハッシュ結合オペレータは、入力データA、入力データB、パラメータセット、二次キャッシュデータ、出力データC及び出力データDを含み、ここで、入力データA、入力データB、出力データC及び出力データDは、いずれもカラムデータであり、具体的には、1次元カラムデータであってもよく、例えば、Puaquetであり、二次キャッシュデータは二次元データ構造のハッシュテーブルであり、ハッシュ値によってインデックスすることができ、パラメータセットはデータの長さ及び演算オペレータを含み、
【0067】
加速コアのハッシュ結合演算は、確立段階と検出段階の2つの段階に分けられる。
【0068】
確立段階では、入力データA及びパラメータセットに基づいて、ハッシュ値及びハッシュ値の数を計算し、ハッシュ値の数は即ちハッシュバケットの深さであり、ハッシュ値に基づいて入力データAと入力データAが位置するインデックス番号をハッシュテーブルに書き込み、ハッシュテーブルは一次キャッシュデータ及び二次キャッシュデータに記憶されるものであり、一次キャッシュデータに対応するハッシュバケットがいっぱい書き込まれる場合、ハッシュテーブルを二次キャッシュデータにオーバーフローさせて記憶し、それと同時に深さカウントは一次キャッシュデータと二次キャッシュデータがそれぞれ対応するハッシュバケット深さを記録し、すなわち一次キャッシュ深さと二次キャッシュ深さを記録する。ここで、一次キャッシュデータと二次キャッシュデータは同じデータ構造であり、一般的に加速コアプロセッサの容量はメモリの容量より小さく、加速コアプロセッサは、メモリよりもアクセス速度が速い。二次キャッシュデータの目的はハッシュバケットのオーバーフローを防止することであり、ハッシュテーブルが二次キャッシュデータにオーバーフローしないと、性能の優位性はより良い。
【0069】
検出段階では、入力データB、一次キャッシュデータ及び二次キャッシュデータに基づいて、ハッシュ値を計算し、ハッシュ値に基づいて深さカウントを検索し、深さカウント値が0より大きい場合、一次キャッシュデータ及び二次キャッシュデータから入力データA及びインデックス番号、入力データB及びインデックス番号を取得し、出力データと入力データが等しい場合、入力データAのインデックス番号を出力データCに出力し、入力データBのインデックス番号を出力データDに出力する。
【0070】
例示的に、入力データAは[1,2,7,9,5,1,4,2]であり、入力データBは[3,5,1,10,3,1]であり、入力データAとパラメータセットに基づいてハッシュ値の数が4であり、一次キャッシュ深さが2であり、二次キャッシュ深さが4であると確定し、ハッシュ結合アルゴリズムをhash=data%4にすると、確立段階で生成したハッシュテーブルは図5に示すように、各行は1つのハッシュ値に対応するハッシュバケットであり、入力データAに対してハッシュ値を計算し、続いて対応するハッシュバケットに入れ、各矩形ボックスは1つの記憶位置を表し、左上の値は入力データであり、右下の値はアレイにおけるインデックス値であり、例えば、ハッシュ値0に対応するハッシュバケットは1であり、ハッシュ値1に対応するハッシュバケットは4であり、ハッシュ値2に対応するハッシュバケットは2であり、ハッシュ値3に対応するハッシュバケットは1であり、ここでは、2行目(すなわちハッシュ値が1である)に対応するハッシュバケツは、一次キャッシュがいっぱいになると、新たなデータが二次キャッシュにオーバーフローして記憶される。入力データAは、確立段階を経て上記のハッシュテーブルの構造を得るとともに、深さ計算ではアレイ結果も得られ、各ハッシュバケツの深さ:[1,4,2,1]に対応する。検出段階では、入力データB、一次キャッシュデータ及び二次キャッシュデータに基づいて計算されたハッシュ値に基づいて、ハッシュテーブルに行ってマッチングの結果を検索し、入力データAに対応する出力データC:[4,0,5,0,5]及び入力データBに対応する出力データD:[1,2,2,5,5]を得る。
【0071】
図8は本開示の実施例によって提供されるデータ処理装置の概略構成図である。データ処理装置は、上記実施例で説明した端末であってもよいし、端末内の部品またはアセンブリであってもよい。本開示の実施例によって提供されるデータ処理装置は、データ処理方法の実施例が提供する処理フローを実行することができ、図8に示すように、データ処理装置80は、受信モジュール81と、演算モジュール82と、伝送モジュール83とを含み、ここでは、受信モジュール81は、中央処理装置によって伝送された入力データを受信するために用いられ、演算モジュール82は、前記入力データにハッシュ結合演算を行い、目標演算結果を取得し、前記目標演算結果を出力データとするために用いられ、伝送モジュール83は、前記出力データを前記中央処理装置に伝送するために用いられる。
【0072】
任意選択的に、前記入力データ及び前記出力データは、コラムデータであり、前記入力データ及び前記出力データの形はアレイ形である。
【0073】
任意選択的に、データ処理装置80は中央処理装置と接続するためにも用いられる接続モジュール84をさらに含み、前記中央処理装置は入力データを取得しかつ前記入力データを加速カードに伝送するために用いられる。
【0074】
任意選択的に、前記加速カードは加速コアとメモリを含み、一次キャッシュデータは前記加速コアに記憶され、前記入力データ、前記出力データ、前記二次キャッシュデータは、メモリに記憶される。
【0075】
任意選択的に、演算モジュール82は、前記加速コアが前記メモリから前記入力データを読み取り、前記入力データのハッシュ値及び前記ハッシュ値の数を計算し、前記ハッシュ値及び前記ハッシュ値の数に基づいてハッシュテーブルを確立し、前記ハッシュテーブルに基づいて前記入力データにハッシュ結合演算を行い、目標演算結果を取得するためにも用いられる。
【0076】
任意選択的に、演算モジュール82は、前記入力データ及びパラメータセットに基づいて、前記入力データのハッシュ値及びハッシュ値の数を計算するためにも用いられる。
【0077】
任意選択的に、演算モジュール82は、前記ハッシュ値及び前記ハッシュ値の数に基づいて、前記入力データの一次キャッシュ深さ及び二次キャッシュ深さを確定し、前記一次キャッシュ深さは、一次キャッシュデータに対応するハッシュバケットであり、前記二次キャッシュメモリ深さは二次オーバーフローデータに対応するハッシュバケットであり、前記ハッシュ値、前記一次キャッシュ深さ及び前記二次キャッシュ深さに基づいて、ハッシュテーブルを確立するためにも用いられる。
【0078】
図8に示す実施例のデータ処理装置は、上述したデータ処理方法の実施例の技術的解決手段を実施するために用いることができるが、その原理及び技術的効果は類似し、ここではこれ以上詳しく述べない。
【0079】
図7は本開示の実施例によって提供される電子機器の概略構成図である。該電子機器は、上記実施例で説明した端末であってもよい。本開示の実施例によって提供される電子機器はデータ処理方法の実施例によって提供される処理フローを実行することができ、図7に示すように、電子機器70は、メモリ71と、プロセッサ72と、コンピュータプログラム及び通信インターフェース73を含み、ここでは、コンピュータプログラムは、メモリ71に記憶されており、プロセッサ72によって、上述したデータ処理方法を実行するように構成されている。
【0080】
また、本開示の実施例は、コンピュータプログラムが記憶されたコンピュータ可読記録媒体をさらに提供し、前記コンピュータプログラムは、プロセッサによって実行されて上記の実施例に記載のデータ処理方法を実現する。
【0081】
また、本開示の実施例は、コンピュータプログラム又は命令を含むコンピュータプログラム製品をさらに提供し、該コンピュータプログラムまたは命令は、プロセッサによって実行されると、以上に記載のデータ処理方法を実現する。
【0082】
なお、本開示で上述したコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体、またはこれら2つの任意の組み合わせとすることができる。コンピュータ可読記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体のシステム、機器、またはデバイス、または任意の以上の組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例は、1つまたは複数のワイヤ、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光記憶装置、磁気記憶装置、または上記のいずれかの適切な組み合わせであってもよいが、それらに限定されない。本開示では、コンピュータ可読記憶媒体は、プログラムを含むか、記憶する任意の有形媒体であってもよく、該プログラムは命令実行システム、装置またはデバイスに使用されるかまたはそれらと組み合わせて使用される。本開示では、コンピュータ可読信号媒体は、コンピュータ可読なプログラムコードを運ぶベースバンド中における、または搬送波の一部として伝播するデータ信号を含むことができる。その伝播するデータ信号は、電磁信号、光信号、または上記の任意の適切な組み合わせを含むが、これらに限定されない様々な形態をとることができる。
【0083】
コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよく、該コンピュータ可読信号媒体は、命令実行システム、装置、またはデバイスによって使用されるか、またはそれらと組み合わせて使用されるためのプログラムを送信、伝播、または伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、ワイヤ、光ファイバケーブル、RF(無線周波数)等、または上記のいずれかの適切な組み合わせを含むがこれらに限定されない任意の適切な媒体で伝送することができる。
【0084】
いくつかの実施形態では、クライアント、サーバは、HTTP(HyperText Transfer Protocol)など、現在知られているか、または将来開発される任意のネットワークプロトコルを使用して通信することができ、任意の形式または媒体のデジタルデータと通信(例えば、 通信ネットワーク)に相互接続できる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、エクストラネット(例えば、インターネット)、及びエンドツーエンドネットワーク(例えば、アドホックエンドツーエンドネットワーク)、現在知られているか、または将来開発されるネットワークを含む。
【0085】
上記コンピュータ可読媒体は、上記電子機器に含まれるものであってもよく、電子機器に組み込まれずに、単独で存在するものであってもよい。
【0086】
上記コンピュータ可読媒体は1つ又は複数のプログラムを運び、上記1つ又は複数のプログラムが該電子機器によって実行されると、該電子機器が、中央処理装置によって伝送された入力データを受信し、前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとし、前記出力データを前記中央処理装置に伝送するようにする。
【0087】
さらに、該電子機器は、以上に記載のデータ処理方法における他のステップを実行することもできる。
【0088】
Java、Smalltalk、C++などのオブジェクト指向プログラミング言語及び「C」言語または類似するプログラミング言語などの従来のプロシージャプログラミング言語を含むがこれらに限定されない、1つまたは複数のプログラミング言語またはそれらの組み合わせで本開示の操作を実行するためのコンピュータプログラムコードを記述することができる。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または、完全にリモートコンピュータまたはサーバ上で実行することができる。リモートコンピュータに関する場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザコンピュータに接続することができ、あるいは、外部コンピュータに接続することができる(例えば、インターネットサービスプロバイダを使用してインターネットを介して接続する)。
【0089】
図面におけるフローチャート及びブロック図は、本開示の様々な実施例によるシステム、方法、及びコンピュータプログラム製品の実現可能なアーキテクチャ、機能と操作を示す。この点に関して、フローチャートまたはブロック図内の各ブロックは、モジュール、プログラムセグメント、またはコードの一部を表すことができ、該モジュール、プログラムセグメント、またはコードの一部は、所定の論理機能を実現するための1つまたは複数の実行可能な命令を含む。また、いくつかの代替的な実現において、ブロックに記された機能は、図面に示された順序とは異なる順序で行われてもよいことにも留意されたい。例えば、連続して表される2つのブロックは、実際には実質的に並列に実行されてもよく、場合によっては逆の順序で実行されてもよいが、これは関連する機能によって定める。また、ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェアベースのシステムで実現でき、あるいは、専用ハードウェアとコンピュータ命令との組み合わせで実現されてもよい。
【0090】
なお、本発明の実施例に係るユニットは、ソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。なお、ユニットの名称は、ある場合には、そのユニット自体の限定を構成するものではない。
【0091】
本明細書で上述した機能は、1つまたは複数のハードウェア論理部材によって少なくとも部分的に実行され得る。例えば、限定されるものではないが、使用できる例示的なタイプのハードウェア論理部材は、フィールドプログラマブルゲートアレイ(FPGA)、専用集積回路(ASIC)、専用標準製品(ASSP)、オンチップシステム(SOC)、複雑プログラマブル論理デバイス(CPLD)などを含む。
【0092】
本開示のコンテストにおいて、機械可読媒体は有形の媒体であってもよく、命令実行システム、装置、または機器によって使用されるか、または命令実行システムとともに、装置または機器と組み合わせて使用されるプログラムを含むかまたは記憶することができる。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であってもよい。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線、または半導体のシステム、装置または機器、または上記のいずれかの適切な組み合わせを含むことができるがこれらに限定されない。機械可読記憶媒体のより具体的な例は、1つまたは複数のワイヤベースの電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリーメモリ(CD-ROM)、光記憶装置、磁気記憶装置、または上記のいずれかの適切な組み合わせを含む。
【0093】
本明細書では、「第1」及び「第2」などの関係用語は、あるエンティティまたは走査を別のエンティティまたは操作から区別するためにのみ使用され、これらのエンティティまたは操作の間にいかなるこのような実際の関係または順序が存在することを必ずしも要求または示唆しない。さらに、用語「含む」、「含み」、またはその任意の他のバリエーションは、非排他的な包含をカバーすることを意図し、したがって、一連の要素を含むプロセス、方法、物品または機器は、それらの要素だけでなく、明示的にリストされていない他の要素も含むか、またはそのようなプロセス、方法、物品または機器に固有の要素も含むことができる。これ以上の制限がない場合、文「1つの・・・・・・を含む」によって限定される要素は、その要素を含むプロセス、方法、物品、または機器に別の同じ要素が存在することを除外するものではない。
【0094】
前述の説明は、当業者が本開示を理解または実施することができるように、本開示の具体的な実施形態に過ぎない。これらの実施例に対する様々な修正は、当業者には明らかであろうが、本明細書で定義される一般的な原理は、本開示の精神または範囲から逸脱することなく、他の実施例において実施される。従って、本開示は、本明細書に記載のこれらの実施例に限定されるものではなく、むしろ、本明細書で開示される原理及び新規な特徴と一致する最も広い範囲に符合すべきである。
【0095】
(付記)
(付記1)
データ処理方法であって、
中央処理装置によって伝送された入力データを受信することと、
前記入力データにハッシュ結合演算を行って、目標演算結果を取得し、前記目標演算結果を出力データとすることと、
前記出力データを前記中央処理装置に伝送することとを含むことを特徴とするデータ処理方法。
【0096】
(付記2)
前記入力データ及び前記出力データは、コラムデータであり、前記入力データ及び前記出力データの形はアレイ形であることを特徴とする付記1に記載の方法。
【0097】
(付記3)
前記方法は、前記中央処理装置によって伝送された前記入力データを受信する前に、中央処理装置に接続することをさらに含み、前記中央処理装置は入力データを取得し、且つ前記入力データを加速カードに伝送するために用いられることを特徴とする付記2に記載の方法。
【0098】
(付記4)
前記加速カードは、加速コア及びメモリを含み、一次キャッシュデータが前記加速コアに記憶され、前記入力データ、前記出力データ、二次キャッシュデータは、前記メモリに記憶されることを特徴とする付記3に記載の方法。
【0099】
(付記5)
前記入力データに対してハッシュ結合演算を行って、目標演算結果を得ることは、
前記加速コアが前記メモリから前記入力データを読み取ることと、
前記入力データのハッシュ値及び前記ハッシュ値の数を計算することと、
前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立することと、
前記ハッシュテーブルに基づいて前記入力データにハッシュ結合演算を行い、目標演算結果を取得することとを含むことを特徴とする付記4に記載の方法。
【0100】
(付記6)
前記入力データの前記ハッシュ値及び前記ハッシュ値の数を計算することは、前記入力データ及びパラメータセットに基づいて、前記入力データのハッシュ値及び前記ハッシュ値の数を計算することを含むことを特徴とする付記5に記載の方法。
【0101】
(付記7)
前記ハッシュ値及び前記ハッシュ値の数に基づいて、ハッシュテーブルを確立することは、
前記ハッシュ値及び前記ハッシュ値の数に基づいて、前記入力データの一次キャッシュ深さ及び二次キャッシュ深さを確定し、前記一次キャッシュ深さは一次キャッシュデータに対応するハッシュバケットであり、前記二次キャッシュ深さは二次キャッシュデータに対応するハッシュバケットであることと、
前記ハッシュ値、前記一次キャッシュ深さ及び前記二次キャッシュ深さに基づいて、ハッシュテーブルを確立することとを含むことを特徴とする付記5に記載の方法。
【0102】
(付記8)
電子機器であって、
メモリと、
プロセッサと、
コンピュータプログラムとを含み、
前記コンピュータプログラムは前記メモリに記憶され、付記1~7のいずれか一つに記載のデータ処理方法を実現するように前記プロセッサによって実行されるように構成されることを特徴とする電子機器。
【0103】
(付記9)
コンピュータプログラムが記憶されたコンピュータ可読記録媒体であって、前記コンピュータプログラムは、プロセッサによって実行されると、付記1~7のいずれか一つに記載のデータ処理方法を実現することを特徴とするコンピュータ可読記録媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9