JP7170094B2 - オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム - Google Patents

オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム Download PDF

Info

Publication number
JP7170094B2
JP7170094B2 JP2021104027A JP2021104027A JP7170094B2 JP 7170094 B2 JP7170094 B2 JP 7170094B2 JP 2021104027 A JP2021104027 A JP 2021104027A JP 2021104027 A JP2021104027 A JP 2021104027A JP 7170094 B2 JP7170094 B2 JP 7170094B2
Authority
JP
Japan
Prior art keywords
operator
operators
merged
combination
traversed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021104027A
Other languages
English (en)
Other versions
JP2021152960A (ja
Inventor
桂 彬 王
揚 凱 徐
煥 ▲シン▼ 鄭
越 郭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021152960A publication Critical patent/JP2021152960A/ja
Application granted granted Critical
Publication of JP7170094B2 publication Critical patent/JP7170094B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、コンピュータ応用技術に関し、特に、深層学習、人工知能、ナレッジグラフの分野でのオペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラムに関している。
現在、深層学習技術は、ますます広く応用されており、例えば音声、画像、自然言語処理などの分野で広く応用されている。
深層学習モデルのボリュームの継続的な増加とトレーニングデータの大幅な増加により、深層学習の計算ニーズが満足されることができず、速度の最適化は常に深層学習で解決すべき問題である。
本願は、オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラムを提供している。
処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせが、オペレーターグラフ中の少なくとも2つのオペレーターをそれぞれ含むことと、
いずれか1つのオペレーターの組み合わせについて、前記オペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得することと、
いずれか1つの併合オペレーターについて、前記オペレーターグラフ中の対応オペレーターを前記併合オペレーターにそれぞれ置き換え、前記対応オペレーターの従属エッジを全て前記併合オペレーターに接続し、前記対応オペレーターが、この併合オペレーターに対応オペレーターの組み合わせ中のオペレーターであることと、を含む
オペレーター併合方法。
処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせは、オペレーターグラフ中の少なくとも2つのオペレーターをそれぞれ含む組み合わせ取得モジュールと、
いずれか1つのオペレーターの組み合わせについて、前記オペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得するオペレーター併合モジュールと、
いずれか1つの併合オペレーターについて、前記オペレーターグラフ中の対応オペレーターを前記併合オペレーターにそれぞれ置き換え、前記対応オペレーターの従属エッジを全て前記併合オペレーターに接続し、前記対応オペレーターが、この併合オペレーターに対応オペレーターの組み合わせ中のオペレーターであるオペレーター置き換えモジュールと、を含む
オペレーター併合装置。
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されたメモリとを含み、
前記メモリは、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに前記の方法を実行させる前記少なくとも1つのプロセッサが実行される命令を記憶する
電子デバイス。
コンピュータに前記方法を実行させるコンピュータ命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体。
プロセッサによって実行される際に、前記の方法を実現するコンピュータプログラム。
上記の出願における実施例は、以下の利点または有益な効果を有する。複数のオペレーターの併合オペレーターを生成し、対応オペレーターを置換することにより、オペレーターの併合を実現し、それにより計算効率と深層学習モデルのトレーニング速度を向上させる深層学習のための横方向オペレーターの自動併合方法が提案された。
本部分に記載されている内容は、本開示の実施例の肝心な特徴または重要な特徴を限定することを意図するものではなく、また、本開示の範囲を限定することを意図するものでもないことを理解すべきである。本開示の他の特徴は、以下の明細書によって容易に理解されるであろう。
添付の図面は、本案をよりよく理解するために使用されており、本開示を制限するものではない。
図1は、本願に記載されたオペレーター併合方法の実施例のフローチャートである。 図2は、本願に記載されたオペレーター併合装置の実施例20の構成構造の概略図である。 図3は、本願の実施例に記載の方法による電子デバイスのブロック図である。
以下は、理解を容易にするために本開示の実施例の様々な詳細を含んで添付の図面を参照して本開示の例示的な実施例を説明し、それらが単なる例示と見なされるべきである。したがって、当業者は、本開示の範囲および精神から逸脱することなく、本明細書に記載の実施例に対して様々な変更および修正を行うことができる。同様に、明確と簡潔のために、公知機能と構造に対する説明は、以下の説明では省略されている。
また、本明細書の「および/または」という用語は、関連するオブジェクトを説明する関連関係にすぎず、3つの関係があることを意味し、例えば、Aおよび/またはBは、Aが単独で存在し、AとBが同時に存在し、Bが単独で存在するという3つの場合があることを示すことができる。さらに、本明細書の文字「/」は、一般に、前後の関連オブジェクトが「または」の関係であることを示す。
図1は、本願に記載されたオペレーター併合方法の実施例のフローチャートである。図1に示すように、次の具体的な実現形態が含まれている。
ステップ101では、処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせは、オペレーターグラフ中の少なくとも2つのオペレーターをそれぞれ含む。
ステップ102では、いずれか1つのオペレーターの組み合わせについて、このオペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得する。
ステップ103では、いずれか1つの併合オペレーターについて、オペレーターグラフ中の対応オペレーターを併合オペレーターにそれぞれ置き換え、対応オペレーターの従属エッジをこの併合オペレーターに接続し、対応オペレーターは、この併合オペレーターに対応オペレーターの組み合わせ中のオペレーターである。
上記の実施例では、深層学習向けの横方向オペレーターの自動併合方法を提出し、複数のオペレーターの併合オペレーターを生成し、対応オペレーターを置換することにより、オペレーターの併合を実現し、計算効率と深層学習モデルのトレーニング速度を向上させる。
ステップ101で説明したように、処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定することができる。オペレーターグラフは、ネットワーク内のオペレーターの組織形態の一つである。その各ノードは、ネットワーク内の異なるオペレーターに対応する。オペレーターは、論理的な意味を持つ最小の計算粒度であり、オペレーターの生産者-消費者の関係に基づいて、オペレーターの依存図(またはオペレーターグラフとも呼ぶ)を作成することができ、すなわち、オペレーター間のデータ伝送関係などに応じて対応ノードをエッジ(従属エッジ)を介して接続することができる。
好ましい実現形態として、併合待ちオペレーターの組み合わせを決定するために、オペレーターグラフについて次の第1の処理を実行できる:オペレーターグラフ内のオペレーターをトラバースし、トラバースされたいずれか一つのオペレーターについて、いずれか一つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定すると、この他のオペレーターとトラバースされたオペレーターをオペレーターペアに形成し、このオペレーターペアを新しいオペレーターとして使用し、この新しいオペレーターでこの他のオペレーターとトラバースされたオペレーターを置換し、即ちこの新しいオペレーターで元の2つのオペレーターを置換し、置換後、オペレーターの数は1つ減り、この他のオペレーターとトラバースされたオペレーターの従属エッジは、すべてこの新しいオペレーターに接続される。終了条件が満たされていると決定すると、オペレーターグラフ中の少なくとも2つのオペレーターで構成されるオペレーターを、併合待ちオペレーターの組み合わせとし、それ以外の場合は、前記第1の処理が繰り返される。
本願では、オペレーターグラフにおけるオペレーターのトラバース方法に制限はなく、実際のニーズに応じて決定することができ、例えば、幅優先のトラバーサル方式を採用することができる。
例えばオペレーターaというトラバースされたいずれか1つのオペレーターについて、例えばオペレーターbといういずれか1つの他のオペレーターとオペレーターaとの間に依存関係がないと決定された場合、オペレーターbとオペレーターaをオペレーターペアに形成できる。オペレーターbとオペレーターaとの間に依存関係がないことが、オペレーターbとオペレーターaはエッジによって直接的または間接的に接続されていないことを意味している。さらに、オペレーターaとオペレーターbからなるオペレーターペアについて、このオペレーターペアを新しいオペレーターとして、オペレーターグラフにおけるオペレーターaおよびオペレーターbを置換し、オペレーターaとオペレーターbとの従属エッジをすべてこの新しいオペレーターに接続することができる。
オペレーターaとオペレーターbで構成されるオペレーターペアが新しいオペレーターとしてオペレーターグラフに追加された後、当該新しいオペレーターがオペレーターabであると仮定すると、オペレーターabは他のオペレーターとともにオペレーターペアを形成することができ、例えばオペレーターcとともにオペレーターペアを形成して、これにより、オペレーターa、オペレーターb、オペレーターcからなるオペレーターペアを取得する。相応的に、このオペレーターペアは、新しいオペレーターとしてオペレーターグラフに追加されることもできる。この新しいオペレーターをオペレーターabcとすれば、オペレーターabcでオペレーターグラフにおけるオペレーターabとオペレーターcを置換でき、オペレーターabとオペレーターcとの従属エッジをオペレーターabcに接続することができる。
上記のプロセスは、終了条件が満たされるまで連続して繰り返すことができる。終了条件を満たす場合、オペレーターグラフの少なくとも2つのオペレーターからなるオペレーターを、それぞれ併合待ちオペレーターの組み合わせとして使用することができる。終了条件を満たしていると仮定し、上記のオペレーターabcが他のオペレーターとともにオペレーターペアを形成しない場合、オペレーターabcは、オペレーターa、オペレーターb、オペレーターcの3つのオペレーターを含む一つの併合待ちオペレーターの組み合わせとすることができる。
実際の応用では、オペレーターには独自の属性があり、併合するかどうかは属性の1つであり、併合できないオペレーターについて、通常、本願で説明する方法で処理することができない。
このため、前記第1の処理を実行する前に、オペレーターグラフのオペレーターから併合可能なオペレーターを選択し、選択されたオペレーターを使用して第1のオペレーターセットを形成することもできる。このように、トラバースしたいずれか1つのオペレーターについて、いずれか1つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定された場合、まず、この他のオペレーターおよびトラバースされたオペレーターが共に第1のオペレーターセットにあるかどうかを決定することができる。そうである場合、この他のオペレーターとトラバースされたオペレーターをオペレーターペアに形成でき、相応的に後続の処理を完了することができ、つまり、この他のオペレーターとトラバースされたオペレーターが共に第1のオペレーターセットにある場合のみ、オペレーターペアを生成し、後続の処理を実行する。
終了条件を満たすことは、新しいオペレーターペアを生成できないことを意味するか、あるいは、新しいオペレーターペアが生成された場合、その中のオペレーターの数が所定の閾値よりも多いことを意味している。このうち、前者の場合は、引き続き併合できるオペレーターがないことを意味している。後者の場合は、新しいオペレーターペアを生成できるが、新しいオペレーターペアが生成されると、新しいオペレーターペアに含まれるオペレーターの数が所定の閾値よりも多いことを意味している。
前記所定の閾値の具体的な値は、実際の必要に応じて決定することができる。例えば、予め設定された併合幅にLを制約することができ、Lは1より大きい正の整数である。
Lの値が3であると仮定すると、オペレーターペアが最も多くて3つのオペレーターしか含めることができないことを示す。新しいオペレーターペアが生成されると4つのオペレーターを含むと仮定すれば、新しいオペレーターペアに含まれるオペレーターの数は閾値3より多くなることを示し、終了条件を満たしていると考えられる。なお、前記閾値の値は整数である必要はなく、ここでは一例に過ぎない。
以上の処理により、併合待ちオペレーターの組み合わせをできるだけ多く見つけることができ、後続の処理について良い基礎となり、得られた併合待ちオペレーターの組み合わせの正確性を確保することができる。
ステップ102で説明したように、いずれか1つのオペレーターの組み合わせについて、このオペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得でき、例えば、オンラインコンパイルによるオペレーター生成方法を使用して、複数の依存関係なしのオペレーターを1つのオペレーターに併合することができ、つまり、併合オペレーターが取得される。
好ましい実現形態として、いずれか1つのオペレーターの組み合わせについて、まず、このオペレーターの組み合わせに対応する併合コードを取得し、として、併合コードに対応するバイナリコードをコンパイルして生成することにより、併合オペレーターを取得することができる。
ここで、いずれか1つのオペレーターの組み合わせsについて、このオペレーターの組み合わせに対応する併合コードを取得する方法は、
1)オペレーターの組み合わせsの各オペレーターv(v∈s)について、そのソースコードkとスレッドスペースbをそれぞれ取得すること、
2)取得されたスレッドスペースを併合し、すなわち、B=Σbとすることと、
3)併合されたスレッドスペースBに従って、併合コードのスレッドスペースを宣言すること、
4)スレッドのサブスペースを割り当てkの計算プロセスを完了すること、
5)併合コードのパラメータリストを構築し、併合コードのパラメータリストは、kのすべてのパラメータリストの並列セットであることと、を含むことができる。
オペレーターの組み合わせsに2つのオペレーターが含まれていると仮定すると、各オペレーターは独自のソースコードなどに対応し、これらの2つのオペレーターに基づいて新しいオペレーターを生成する必要があり、この新しいオペレーターで元の2つのオペレーターの操作を完成させることができ、相応的に、以前には存在しなかった新しいコードを生成する必要がある。
その後、併合コードに対応するバイナリコードをコンパイルして生成でき、具体的に、
1)nvrtcCreateProgramを使用してnvrtcProgramオブジェクトを作成する。つまり、nvrtcCreateProgramによって、ソースコード(併合コード)をnvrtcProgramオブジェクトにパッケージすることと、
2)cudaDeviceGetAttributeによって、現在のグラフィック処理ユニット(GPU、Graphics Processing Unit)のアーキテクチャパラメータを取得し、コンパイルオプションを設定することと、
3)前記nvrtcProgramオブジェクトに従って、nvrtcCompileProgramよって並列スレッド実行(PTX、Parallel Thread Xecution)中間コードをコンパイルして生成し、文字配列に保存することと、
4)前記中間コードに従って、cuModuleLoadDataExによってcUmodule オブジェクトを生成することと、
5)前記CUmoduleオブジェクトに従って、cuModuleGetFunctionによって、コンパイルされたバイナリコードを取得することと、を含むことができる。
また、cuLaunchKernelによって、バイナリコードの呼び出しを開始することもできる。
前述の動的に生成された併合コードをオンラインで実行するために、コードをオンラインでコンパイルして管理する方法が必要である。統合コンピューティングデバイスアーキテクチャ(CUDA、Compute Unified Devicearchitecture)インターフェースは、ランタイムコンパイル(NVRTC、Runtimecompilation)インターフェースを提供し、オンラインでソースコードをコンパイルして、GPUで実行されるバイナリコードを生成でき、コンパイルおよび実行プロセスは、上記1)-5)のとおりである。
ステップ103で説明したように、いずれか1つの併合オペレーターについて、オペレーターグラフ中の対応オペレーターをこの併合オペレーターで置き換えることができ、対応オペレーターの従属エッジは全てこの併合オペレーターに接続され、対応オペレーターはこの併合オペレーターに対応するオペレーターの組み合わせ中のオペレーターである。
例えば、ある併合オペレーターがオペレーターa、オペレーターbおよびオペレーターcで構成されている場合、この併合オペレーターを使用して、オペレーターグラフのオペレーターa、オペレーターbおよびオペレーターcを置き換えることができ、3つのオペレーターを1つのオペレーターに併合し、さらに、オペレーターa、オペレーターb、オペレーターcの従属エッジを全てこの併合オペレーターに接続して、オペレーターグラフ中の依存関係が変更されないように保証することができる。
なお、前述の方法の実施例については、説明を簡単にするために、一連の動作の組み合わせとして表現されている、当業者は、本願が、記載された動作の順序によって限定されないことを理解すべきである。本願によれば、いくつかのステップは、他の順序で、または同時に実行することができる。次に、当業者は、明細書に記載された実施例がいずれも好ましい実施例に属し、関連する動作およびモジュールが本願によって必ずしも必要とされるわけではないことも理解すべきである。
上記は、方法の実施例に対する説明であり、以下、装置実施例によって、本願に記載される方案をさらに説明する。
図2は、本願に記載のオペレーター併合装置の実施例20の構成構造の概略図である。図2に示すように、組み合わせ取得モジュール201、オペレーター併合モジュール202およびオペレーター置換モジュール203を含むことができる。
組合せ取得モジュール201は、処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせは、オペレーターグラフの少なくとも2つのオペレーターをそれぞれ含む。
オペレーター併合モジュール202は、いずれか1つのオペレーターの組み合わせについて、このオペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得する。
オペレーター置換モジュール203は、いずれか1つの併合オペレーターについて、オペレーターグラフ中の対応オペレーターをこの併合オペレーターで置換し、対応オペレーターの従属エッジを全て併合オペレーターに接続し、対応オペレーターは、この併合オペレーターに対応するオペレーターの組み合わせ中のオペレーターである。
好ましい実現形態として、併合待ちオペレーターの組み合わせを決定するために、組合せ取得モジュール201は、オペレーターグラフに対して次の第1の処理を実行することができる:オペレーターグラフ内のオペレーターをトラバースし、トラバースされたいずれか1つのオペレーターについて、いずれか1つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定すると、この他のオペレーターとトラバースされたオペレーターをオペレーターペアに形成し、このオペレーターペアを新しいオペレーターとして使用し、この新しいオペレーターでこの他のオペレーターとトラバースされたオペレーターを置換し、この他のオペレーターとトラバースされたオペレーターの従属エッジはすべてこの新しいオペレーターに接続される。終了条件が満たされていると決定すると、オペレーターグラフ中の少なくとも2つのオペレーターで構成されるオペレーターを、併合待ちオペレーターの組み合わせとし、それ以外の場合は、上記の第1の処理が繰り返される。
実際の応用では、オペレーターには独自の属性があり、併合できるかどうかは属性の1つであり、併合できないオペレーターについて、通常、本願で説明する方法で処理することができない。
このため、前記第1の処理を実行する前に、組合せ取得モジュール201は、オペレーターグラフのオペレーターから併合可能なオペレーターを選択し、選択されたオペレーターを使用して第1のオペレーターセットを形成することもできる。このように、トラバースされたいずれか1つのオペレーターについて、いずれか1つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定された場合、まず、この他のオペレーターおよびトラバースされたオペレーターが共に第1のオペレーターセットにあるかどうかを決定することができる。そうである場合、この他のオペレーターとトラバースされたオペレーターをオペレーターペアに形成でき、相応的に後続の処理を完了することができる。つまり、この他のオペレーターとトラバースされたオペレーターが共に第1のオペレーターセットにある場合のみ、オペレーターペアが生成され、後続の処理が実行される。
終了条件を満たすことは、新しいオペレーターペアを生成できないことを意味するか、あるいは、新しいオペレーターペアが生成された場合、その中のオペレーターの数が所定の閾値よりも多いことを意味している。このうち、前者の場合は、引き続き併合できるオペレーターがないことを意味している。後者の場合は、新しいオペレーターペアを生成できるが、新しいオペレーターペアが生成されると、新しいオペレーターペアに含まれるオペレーターの数が所定の閾値よりも多いことを意味している。
前記所定の閾値の具体的な値は、実際の必要に応じて決定することができる。例えば、予め設定された併合幅にLを制約することができ、Lは1より大きい正の整数である。
オペレーター併合モジュール202は、いずれか1つのオペレーターの組み合わせについて、このオペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得でき、例えば、オンラインコンパイルによるオペレーター生成方法を使用して、複数の依存関係なしのオペレーターを1つのオペレーターに併合することができ、つまり、併合オペレーターが取得される。
好ましい実現形態として、いずれか1つのオペレーターの組み合わせについて、オペレーター併合モジュール202は、まず、このオペレーターの組み合わせに対応する併合コードを取得し、として、併合コードに対応するバイナリコードをコンパイルして生成することにより、併合オペレーターを取得することができる。
ここで、いずれか1つのオペレーターの組み合わせsについて、このオペレーターの組み合わせに対応する併合コードを取得する方法は、
1)オペレーターの組み合わせsの各オペレーターv(v∈s)について、そのソースコードkとスレッドスペースbをそれぞれ取得すること、
2)取得されたスレッドスペースを併合し、すなわち、B=Σbとすることと、
3)併合されたスレッドスペースBに従って、併合コードのスレッドスペースを宣言すること、
4)スレッドのサブスペースを割り当てkの計算プロセスを完了すること、
5)併合コードのパラメータリストを構築し、併合コードのパラメータリストは、kのすべてのパラメータリストの並列セットであることと、を含むことができる。
その後、併合コードに対応するバイナリコードをコンパイルして生成でき、具体的に、
1)nvrtcCreateProgramを使用してnvrtcProgramオブジェクトを作成する。つまり、nvrtcCreateProgramによって、ソースコード(併合コード)をnvrtcProgramオブジェクトにパッケージすることと、
2)cudaDeviceGetAttributeによって、現在のグラフィック処理ユニット(GPU、Graphics Processing Unit)のアーキテクチャパラメータを取得し、コンパイルオプションを設定することと、
3)前記nvrtcProgramオブジェクトに従って、nvrtcCompileProgramよって並列スレッド実行(PTX、Parallel Thread Xecution)中間コードをコンパイルして生成し、文字配列に保存することと、
4)前記中間コードに従って、cuModuleLoadDataExによってcUmodule オブジェクトを生成することと、
5)前記CUmoduleオブジェクトに従って、cuModuleGetFunctionによって、コンパイルされたバイナリコードを取得することと、を含むことができる。
また、cuLaunchKernelによって、バイナリコードの呼び出しを開始することもできる。
いずれか1つの併合オペレーターについて、オペレーター置換モジュール203は、オペレーターグラフ中の対応オペレーターをこの併合オペレーターで置き換えることができ、対応オペレーターの従属エッジは全てこの併合オペレーターに接続され、対応オペレーターはこの併合オペレーターに対応するオペレーターの組み合わせ中のオペレーターである。
図2に示す装置実施例の具体的な作業プロセスについては、前述の方法実施例の関連説明を参照し、ここでは繰り返さない。
つまり、本願の装置実施例の前記技術案を使用すると、横方向オペレーターの自動併合を実現でき、コンパイルによる方法を採用し、実行時に新しいオペレーターを生成して元のオペレーターを置き換えることができ、それにより、計算効率と深層学習モデルのトレーニング速度などを向上させることができ、且つ固定モードに制限されず、より広い応用シナリオと最適化の余地がある。
本願の実施例によれば、本願は、電子デバイスおよび読み取り可能な記憶媒体をさらに提供する。
図3に示すように、本願の実施例による前記方法による電子デバイスのブロック図である。電子デバイスは、ラップトップコンピューター、デスクトップコンピューター、ワークステーション、パーソナルデジタルアシスタント、サーバー、ブレードサーバー、メインフレームコンピューター、その他の適切なコンピューターなど、各種の形式のデジタルコンピューターを表すことを目的としている。電子デバイスは、携帯情報端末、携帯電話、スマートフォン、ウェアラブルデバイス、およびその他の同様のコンピューティングデバイスなどの各種の形式のモバイルデバイスを表すこともできる。本明細書に示される部品、それらの接続および関係、ならびにそれらの機能は単なる例であり、本明細書に記載および/または要求とされる本願の実現を制限することを意図するものではない。
図3に示すように、当該電子デバイスは、1つまたは複数のプロセッサY01、メモリY02、および高速インターフェースおよび低速インターフェースを含む様々な部品を接続するためのインターフェースを含む。各部品は、異なるバスを使用して相互に接続されており、共通のマザーボードにインストールすることも、必要に応じて他の方法でインストールすることもできる。プロセッサは、外部入力/出力デバイス(インターフェースに結合された表示デバイスなど)にGUIのグラフィック情報を表示するための、メモリ内またはメモリ上に格納された命令を含む、電子デバイスで実行される命令を処理することができる。他の実施形態では、必要に応じて、複数のプロセッサおよび/または複数のバスを、複数のメモリおよび複数のメモリとともに使用することができる。同様に、複数の電子デバイスを接続することができ、各デバイスは一部の必要な操作を提供する(例えば、サーバーアレイ、ブレードサーバーのグループ、またはマルチプロセッサシステムとして)。図3では、一つのプロセッサY01が例として取り上げられている。
メモリY02は、この出願によって提供される非一時的なコンピュータ可読記憶媒体である。ここで、少なくとも1つのプロセッサは、この出願で提供される方法を実行するように、メモリは、少なくとも1つのプロセッサによって実行可能な命令を格納する。本願の非一時的なコンピュータ可読記憶媒体は、コンピュータ命令を格納し、当該コンピュータ命令は、本願によって提供される方法をコンピュータに実行させるために使用される。
非一時的なコンピュータ可読記憶媒体とするメモリY02は、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能プログラムとモジュール、および本願実施例中の方法に対応するプログラム命令/モジュールを格納するために使用することができる。プロセッサY01は、メモリY02に格納された非一時的なソフトウェアプログラム、命令、およびモジュールを実行することによって、サーバの様々な機能的アプリケーションおよびデータ処理を行なう。すなわち、前述の方法の実施例中の方法を実現する。
メモリY02は、オペレーティングシステムと少なくとも1つの機能によって必要とされるアプリケーションプログラムを記憶するプログラム領域および電子デバイスの使用により作成されたデータを記憶する記憶データ領域を含み得る。また、メモリY02は、少なくとも1つの磁気ディスク記憶装置、フラッシュ記憶装置、または他の非一時的ソリッドステート記憶装置などの高速ランダムアクセスメモリを含み得る。いくつかの実施例では、メモリY02は、任意選択で、プロセッサY01に対して遠隔的に設置されるメモリを選択的に含み、これらの遠隔メモリは、ネットワークを介して電子デバイスに接続され得る。前述のネットワークの例には、インターネット、企業イントラネット、ブロックチェーンネットワーク、ローカルエリアネットワーク、モバイル通信ネットワーク、およびそれらの組み合わせが含まれるが、これらに限定されない。
電子デバイスは、入力デバイスY03および出力デバイスY04をさらに含み得る。プロセッサY01、メモリY02、入力デバイスY03、および出力デバイスY04は、バスによって、または他の方法で接続することができる。図3には、バスによる接続ことを例とする。
入力デバイスY03は、入力データまたは文字情報を受信し、タッチスクリーン、キーパッド、マウス、トラックパッドなどのこの電子デバイスのユーザー設定および機能制御に関連するキー信号入力を生成することができ、例えばタッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、インジケータースティック、1つ以上のマウスボタン、トラックボール、ジョイスティックなどの入力デバイスである。出力装置Y04は、表示デバイス、補助照明装置、触覚フィードバック装置(例えば、振動モーター)などを含み得る。この表示装置は、液晶ディスプレイ、発光ダイオードディスプレイ、およびプラズマディスプレイを含み得るが、これらに限定されない。いくつかの実施例では、ディスプレイデバイスは、タッチスクリーンであり得る。
本明細書に記載のシステムおよび技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向け集積回路、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実施形態は、少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行および/または解釈される1つまたは複数のコンピュータプログラムに実施されることを含み得る。当該プログラム可能なプロセッサは、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、データおよび命令をこのストレージシステム、少なくとも1つの出力デバイス及び少なくとも1つの入力デバイスに送信することができる専用または一般的なプログラマブルプロセッサであり得る。
これらの計算プログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)には、プログラム可能なプロセッサの機器命令が含まれ、高水準プロセスおよび/または対象指向プログラミング言語、および/またはアセンブリ/機器言語を利用してこれらの計算プログラムを実施する。本明細書で使用される場合、「機器可読媒体」および「コンピュータ可読媒体」という用語は、プログラム可能なプロセッサの任意のコンピュータプログラム製品、デバイス、および/または装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジック装置)に機器命令および/またはデータを提供するために使用されることを指し、機器可読信号としての機器命令を受信する機器可読メディアを含む。「機器可読信号」という用語は、プログラム可能なプロセッサに機器命令および/またはデータを提供するために使用される任意の信号を指す。
ユーザーとのインタラクティブを提供するために、ここで説明するシステムおよび技術は、ユーザーに情報を表示するための表示装置(例えば、陰極線管または液晶ディスプレイモニター))、及びユーザーがコンピューターに入力を提供できるキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)を備えたコンピューターに実施することができる。他のタイプの装置は、ユーザーとのインタラクティブを提供することに用いられる。例えば、ユーザーに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり、任意の形式(音響入力、音声入力、または触覚入力を含む)を用いてユーザーからの入力を受信する。
本明細書に記載のシステムおよび技術は、バックエンド部品を含むコンピューティングシステム(例えば、データサーバーとして)、またはミドルウェア部品を含むコンピューティングシステム(例えば、アプリケーションサーバー)、またはフロントエンド部品を含むコンピューティングシステム(例えば、グラフィカルユーザーインターフェイス又はWebブラウザーを備えたユーザーコンピューターであり、ユーザーがこのグラフィカルユーザーインターフェイス又はこのWebブラウザーによりここで説明するシステムとテクノロジーの実施形態とインタラクティブすることができる)、またはそのようなバックグラウンド部品を含む、ミドルウェア部品、またはフロントエンド部品の任意組み合わせのコンピューティングシステム内に実施させる。システムの部品は、デジタルデータ通信の任意の形式または媒体(例えば、通信ネットワーク)を介して相互に接続できる。通信ネットワークの例には、ローカルエリアネットワーク、ワイドエリアネットワーク、ブロックチェーンネットワークおよびインターネットが含まれる。
コンピュータシステムには、クライアントとサーバーを含めることができる。クライアントとサーバーは通常、互いに遠く離れており、通常は通信ネットワークを介してインタラクティブする。クライアントとサーバーの関係は、相応的なコンピューター上で実行され、相互にクライアント-サーバー関係を持つコンピュータープログラムによって生成される。従来の物理ホストおよびVPSサービスの困難な管理と弱いビジネススケーラビリティを解決するために、サーバーは、クラウドコンピューティングサーバーまたはクラウドホストとも呼ばれるクラウドサーバーであり、クラウドコンピューティングサービスシステムのホスト製品である。
上記の各種の形式のプロセス、再並べ替え、追加、または削除のステップを使用することができると理解すべきである。例えば、本願に記載されている各ステップは、並行して、順次に、または異なる順序で実行することができるが、本願に開示されている技術案の所望の結果が達成できる限り、本明細書にはこれに限定されない。
上記の具体的な実施形態は、本願の保護範囲を制限するものを構成していない。当業者は、様々な修正、組み合わせ、サブ組み合わせおよび置換が、設計要件および他の要因に従って行うことができることを理解する必要がある。本願の精神と原則の範囲内で行われた変更、同等の交換、および改善は、本願の保護範囲に含まれすべきである。

Claims (11)

  1. プロセッサにより実行されるオペレーター併合方法であって、
    処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせが、オペレーターグラフ中の少なくとも2つのオペレーターをそれぞれ含むことと、
    いずれか1つのオペレーターの組み合わせについて、前記オペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得することと、
    いずれか1つの併合オペレーターについて、前記オペレーターグラフ中の対応オペレーターを前記併合オペレーターにそれぞれ置き換え、前記対応オペレーターの従属エッジを全て前記併合オペレーターに接続し、前記対応オペレーターが、この併合オペレーターに対応オペレーターの組み合わせ中のオペレーターであることと、を含み、
    前記オペレーターの組み合わせに対応する併合オペレーターを取得することは、
    前記オペレーターの組み合わせに対応する併合コードを取得することと、
    前記併合コードに対応するバイナリコードをコンパイルして生成し、前記併合オペレーターを取得することと、を含む
    オペレーター併合方法。
  2. 前記処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定することは、
    前記オペレーターグラフについて次の第1の処理を実行し、
    前記オペレーターグラフ内のオペレーターをトラバースし、トラバースされたいずれか1つのオペレーターについて、いずれか1つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定すると、前記他のオペレーターと前記トラバースされたオペレーターをオペレーターペアに形成し、前記オペレーターペアを新しいオペレーターとして、前記他のオペレーターとトラバースされたオペレーターを置換し、前記他のオペレーターと前記トラバースされたオペレーターの従属エッジをすべて前記新しいオペレーターに接続し、
    終了条件が満たされていると決定すると、前記オペレーターグラフ中の少なくとも2つのオペレーターで構成されるオペレーターを、前記併合待ちオペレーターの組み合わせとし、それ以外の場合は、前記第1の処理が繰り返される
    請求項1に記載の方法。
  3. 前記オペレーターグラフのオペレーターから併合可能なオペレーターを選択し、選択されたオペレーターを使用して第1のオペレーターセットを形成することと、
    前記他のオペレーターおよび前記トラバースしたオペレーターが共に前記第1のオペレーターセットにあると決定すると、前記他のオペレーターと前記トラバースされたオペレーターをオペレーターペアに形成することと、をさらに含む
    請求項2に記載の方法。
  4. 前記終了条件が満たされていることは、
    新しいオペレーターペアを生成できず、又は、新しいオペレーターペアが生成された場合、そのオペレーターの数が所定の閾値よりも大きくなること、を含む
    請求項2に記載の方法。
  5. 処理待ちオペレーターグラフに応じて、併合待ちオペレーターの組み合わせを決定し、いずれか1つのオペレーターの組み合わせは、オペレーターグラフ中の少なくとも2つのオペレーターをそれぞれ含む組み合わせ取得モジュールと、
    いずれか1つのオペレーターの組み合わせについて、前記オペレーターの組み合わせに対応する併合オペレーターをそれぞれ取得するオペレーター併合モジュールと、
    いずれか1つの併合オペレーターについて、前記オペレーターグラフ中の対応オペレーターを前記併合オペレーターにそれぞれ置き換え、前記対応オペレーターの従属エッジを全て前記併合オペレーターに接続し、前記対応オペレーターが、この併合オペレーターに対応オペレーターの組み合わせ中のオペレーターであるオペレーター置き換えモジュールと、を含み、
    前記オペレーター併合モジュールは、いずれか1つのオペレーターの組み合わせに対して、
    前記オペレーターの組み合わせに対応する併合コードを取得し、前記併合コードに対応するバイナリコードをコンパイルして生成し、前記併合オペレーターを取得する
    オペレーター併合装置。
  6. 前記組み合わせ取得モジュールは、前記オペレーターグラフについて次の第1の処理を実行し、
    前記オペレーターグラフ内のオペレーターをトラバースし、トラバースされたいずれか1つのオペレーターについて、いずれか1つの他のオペレーターとトラバースされたオペレーターとの間に依存関係がないと決定すると、前記他のオペレーターと前記トラバースされたオペレーターをオペレーターペアに形成し、前記オペレーターペアを新しいオペレーターとして、前記他のオペレーターとトラバースされたオペレーターを置換し、前記他のオペレーターと前記トラバースされたオペレーターの従属エッジをすべて前記新しいオペレーターに接続し、
    終了条件が満たされていると決定すると、前記オペレーターグラフ中の少なくとも2つのオペレーターで構成されるオペレーターを、前記併合待ちオペレーターの組み合わせとし、それ以外の場合は、前記第1の処理が繰り返される
    請求項5に記載の装置。
  7. 前記組み合わせ取得モジュールは、さらに、
    前記オペレーターグラフのオペレーターから併合可能なオペレーターを選択し、選択されたオペレーターを使用して第1のオペレーターセットを形成し、前記他のオペレーターおよび前記トラバースしたオペレーターが共に前記第1のオペレーターセットにあると決定すると、前記他のオペレーターと前記トラバースされたオペレーターをオペレーターペアに形成する
    請求項6に記載の装置。
  8. 前記終了条件が満たされていることは、
    新しいオペレーターペアを生成できず、又は新しいオペレーターペアが生成された場合、そのオペレーターの数が所定の閾値よりも大きくなること、を含む
    請求項6に記載の装置。
  9. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサと通信可能に接続されたメモリとを含み、
    前記メモリは、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~4のいずれか一項に記載の方法を実行させる前記少なくとも1つのプロセッサが実行される命令を記憶する
    電子デバイス。
  10. コンピュータに請求項1~4のいずれか一項に記載の方法を実行させるコンピュータ命令を記憶する
    非一時的なコンピュータ読み取り可能な記憶媒体。
  11. プロセッサによって実行される際に、請求項1~4のいずれか一項に記載の方法を実現するコンピュータプログラム。
JP2021104027A 2020-10-22 2021-06-23 オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム Active JP7170094B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011139137.7A CN112270413B (zh) 2020-10-22 2020-10-22 算子合并方法、装置、电子设备及存储介质
CN202011139137.7 2020-10-22

Publications (2)

Publication Number Publication Date
JP2021152960A JP2021152960A (ja) 2021-09-30
JP7170094B2 true JP7170094B2 (ja) 2022-11-11

Family

ID=74342813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021104027A Active JP7170094B2 (ja) 2020-10-22 2021-06-23 オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム

Country Status (4)

Country Link
US (1) US20210398022A1 (ja)
JP (1) JP7170094B2 (ja)
KR (1) KR20210120919A (ja)
CN (1) CN112270413B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114492737B (zh) * 2021-12-31 2022-12-09 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
CN117709403A (zh) * 2022-09-07 2024-03-15 华为云计算技术有限公司 模型优化方法、装置以及计算设备
WO2024065525A1 (en) * 2022-09-29 2024-04-04 Intel Corporation Method and apparatus for optimizing deep learning computation graph

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182785A (ja) 2003-12-09 2005-07-07 Microsoft Corp グラフィックス処理ユニットを使用して機械学習技術の処理を速め、最適化するシステムおよび方法
JP2013206291A (ja) 2012-03-29 2013-10-07 Fujitsu Ltd プログラム、コード生成方法および情報処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3096387B2 (ja) * 1994-01-28 2000-10-10 三菱電機株式会社 数値演算処理装置
US8225074B2 (en) * 2008-10-02 2012-07-17 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
CN102323946B (zh) * 2011-09-05 2013-03-27 天津神舟通用数据技术有限公司 并行数据库中算子复用的实现方法
CN111382347A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种对象特征的处理和信息推送方法、装置和设备
CN109977116B (zh) * 2019-03-14 2023-04-21 超越科技股份有限公司 基于fpga-ddr的哈希连接算子加速方法及系统
CN110297632A (zh) * 2019-06-12 2019-10-01 百度在线网络技术(北京)有限公司 代码生成方法和装置
CN110515626B (zh) * 2019-08-20 2023-04-18 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN111338635B (zh) * 2020-02-20 2023-09-12 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182785A (ja) 2003-12-09 2005-07-07 Microsoft Corp グラフィックス処理ユニットを使用して機械学習技術の処理を速め、最適化するシステムおよび方法
JP2013206291A (ja) 2012-03-29 2013-10-07 Fujitsu Ltd プログラム、コード生成方法および情報処理装置

Also Published As

Publication number Publication date
JP2021152960A (ja) 2021-09-30
CN112270413B (zh) 2024-02-27
CN112270413A (zh) 2021-01-26
KR20210120919A (ko) 2021-10-07
US20210398022A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
JP7170094B2 (ja) オペレーター併合方法、装置、電子デバイス、記憶媒体及びコンピュータプログラム
US11222279B2 (en) Modular quantum circuit transformation
US20210201198A1 (en) Method, electronic device, and storage medium for generating node representations in heterogeneous graph
US11928432B2 (en) Multi-modal pre-training model acquisition method, electronic device and storage medium
EP3828719A2 (en) Method and apparatus for generating model for representing heterogeneous graph node, electronic device, storage medium, and computer program product
JP7269913B2 (ja) ナレッジグラフ構築方法、装置、電子機器、記憶媒体およびコンピュータプログラム
KR20210114853A (ko) 모델 파라미터를 업데이트하는 방법 및 장치
CN111949272B (zh) 寄宿应用的编译优化方法、装置、电子设备及可读存储介质
CN112069201A (zh) 目标数据的获取方法和装置
JP7282823B2 (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
CN111158666B (zh) 实体归一化处理方法、装置、设备及存储介质
US20220101194A1 (en) Method, electronic device, and computer program product for processing machine learning model
JP2021111405A (ja) 行列型テキストの記憶方法、装置及び電子機器
CN111782181A (zh) 代码生成方法、装置、电子设备以及存储介质
CN112015468A (zh) 一种接口文档处理方法、装置、电子设备以及存储介质
JP2022013658A (ja) オプティマイザ学習方法、装置、電子デバイス、可読記憶媒体及びコンピュータプログラム
JP7316305B2 (ja) グラフ計算の処理方法、装置、電子機器及び記憶媒体
US11748108B2 (en) Instruction executing method and apparatus, electronic device, and computer-readable storage medium
US20220121963A1 (en) Network operator processing method, apparatus, electronic device and storage medium
CN111639116B (zh) 数据访问连接会话保护方法以及装置
JP7403586B2 (ja) 演算子の生成方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
CN111291201B (zh) 一种多媒体内容分值处理方法、装置和电子设备
CN116302414A (zh) 任务的调度方法、装置、电子设备和存储介质
CN114817058A (zh) 并发风险检测方法、装置、电子设备及存储介质
CN115145730A (zh) 运行监测方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220922

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221031

R150 Certificate of patent or registration of utility model

Ref document number: 7170094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150