Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6715334B2 - Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体 - Google Patents
[go: Go Back, main page]

JP6715334B2 - Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体 - Google Patents

Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体 Download PDF

Info

Publication number
JP6715334B2
JP6715334B2 JP2018538859A JP2018538859A JP6715334B2 JP 6715334 B2 JP6715334 B2 JP 6715334B2 JP 2018538859 A JP2018538859 A JP 2018538859A JP 2018538859 A JP2018538859 A JP 2018538859A JP 6715334 B2 JP6715334 B2 JP 6715334B2
Authority
JP
Japan
Prior art keywords
gpu
resources
resource pool
rendering
default resource
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
JP2018538859A
Other languages
English (en)
Other versions
JP2019509547A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2019509547A publication Critical patent/JP2019509547A/ja
Application granted granted Critical
Publication of JP6715334B2 publication Critical patent/JP6715334B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

<関連出願>
本願は中国国家知識産権局に2016年1月29日付で出願された「GPUリソース再構築方法、ユーザー・デバイス及びシステム」と題する中国特許出願第201610067210.1号による優先権を主張しており、その内容全体は本願のリファレンスに組み込まれる。
<技術分野>
本開示はクラウド技術の技術分野に関連し、特に、リソースを再構築する方法、ユーザー・デバイス及びシステムに関連する。
<背景技術>
近年のネットワーク帯域幅及び端末技術の急速な発達とともに、クラウド・コンピューティング技術の成熟はクラウド・インタラクティブ・システムを促進している。既存のクラウド・インタラクティブ・システムは、通常、サーバーと複数のユーザー・デバイスとを含み、サーバーはクラスタ・サーバーであってもよく、複数のインタラクティブ・アプリケーションがインタラクティブ・システムで動作することが可能である。
今のところ、既存の技術におけるクラウド・インタラクティブ・システムでの画像レンダリングのアプリケーションに関し、画像をレンダリングしてレンダリングされた画像フレームをユーザー・デバイスへ送信することはサーバーの責務であり、ユーザー・デバイスは、レンダリングされた画像フレームを受信した後、画像フレームを直接的にデコードし、画像を表示する。クラウド・インタラクティブ・システムでは、GPUリソースの利用状態は、画像を表示するユーザー・デバイスに直接的には記録されず、そのような動作は、GPUの喪失後にGPUを再構築する場合に、GPUリソースをリリース及び再構築することに対する失敗を招く。
本願の実施形態では、システムのノーマルな利用を保証し且つユーザーの体感を改善する、リソースを構築する方法、ユーザー・デバイス、システム及び記憶媒体が提供される。
本開示の第1側面はリソースを再構築する方法を提供することである。本方法はクラウド・インタラクティブ・システムに適用される。クラウド・インタラクティブ・システムはユーザー・デバイス及びサーバーを含む。ユーザー・デバイスはグラフィックス処理ユニット(GPU)を含む。GPUはデフォルト・リソース・プールに対応する。
本方法は:ユーザー・デバイスが、サーバーにより送信されたレンダリング・データを受信するステップであって、レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;ユーザー・デバイスが、レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースを、デフォルト・リソース・プールにおいてホールドされたリソース(held resources in the default resource pool)として記録するステップ; ユーザー・デバイスが、GPUはロスの状態であるか否かをレンダリング命令に応じて判断し、GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断するステップ;及びGPUリカバリを実行するように判断された場合に、ユーザー・デバイスが、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築するステップを含む。
本開示の第2側面はユーザー・デバイスを提供することである。ユーザー・デバイスはクラウド・インタラクティブ・システムに含まれる。クラウド・インタラクティブ・システムはサーバーも含む。ユーザー・デバイスはグラフィックス処理ユニット(GPU)を含む。GPUはデフォルト・リソース・プールに対応する。
ユーザー・デバイスは:サーバーにより送信されたレンダリング・データを受信するように構成される受信ユニットであって、レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む、受信ユニット;レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースを、デフォルト・リソース・プールにおいてホールドされたリソースとして記録する記録ユニット;GPUはロスの状態であるか否かをレンダリング命令に応じて判断し、GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断する判断ユニット;及びGPUリカバリを実行するように判断された場合に、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築する再構築ユニットを含む。
本開示の第3側面は、ユーザー・デバイス及びサーバーを含むクラウド・インタラクティブ・システムを提供することである。ユーザー・デバイスは第2側面によるユーザー・デバイスである。
本開示の第4側面は、コンピュータが読み取り可能な命令を保存する不揮発性記憶媒体を提供することである。命令がコンピュータにより実行されると、コンピュータは、上述したようなリソース再構築方法を実行する。
クラウド・ゲーム・アーキテクチャの概略図。
本開示の実施形態に従ってGPUリソースを再構築する方法の概略図。
本開示の実施形態によるGPUリソースを再構築する方法におけるクラウド・ゲーム・アーキテクチャの特定の概略図。
本開示の別の実施形態によるGPUリソースを再構築する方法の概略図。
本開示の実施形態によるユーザー・デバイスの概略図。
本開示の別の実施形態によるユーザー・デバイスの概略図。
本開示の実施形態では、システムのノーマルな利用を保証し且つユーザーの体感を改善するリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体が提供される。
本開示の実施形態による技術的解決手段は、本開示による図面に関連して明確かつ完全に記述されており、それにより、当業者は本開示による技術的解決手段を更に理解することができるようになる。明らかに、説明される実施形態は本開示の実施形態の全てではなく、ほんの僅かなものに過ぎない。何らの創作的労力も無しに本開示による実施形態に基づいて当業者により把握される他の如何なる実施形態も、本開示の保護範囲に属する。
本開示についての上記の図面、特許請求の範囲及び明細書において「第1」、「第2」等のような用語は(それらが存在する場合には)、特定の順序又はそれらの優先度を示すものではなく、個々の類似するオブジェクトを伝えるためにそこで使用されているに過ぎない。ここで使用される用語は相互交換可能であってもよく、それにより、本開示の実施形態はここで説明されるもの以外の順序で実現され得ることが理解されるべきである。更に、「含む」、「有する」又は他の何らかの異形の用語は、非排他的であるように意図される。例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品又はデバイスは、明示的に列挙されたステップやユニットに限定されず、明示的には列挙されていない他のステップやユニット、或いはプロセス、方法、製品又はデバイスに固有のものを更に含んでよい。
以下、本開示でリソースを再構築する方法の実施形態が先ず説明される。
図1に示されるように、本開示の実施形態におけるリソースを再構築する方法は、クラウド・インタラクティブ・システムに適用される。クラウド・インタラクティブ・システムはユーザー・デバイスとサーバーとを含む。複数のユーザー・デバイスが存在してもよい。サーバーはクラスタ・サーバー(a cluster server)であってもよい。複数のインタラクティブ・アプリケーションがクラウド・インタラクティブ・システムで動作することが可能である。ユーザー・デバイスは、パーソナル・コンピュータ(PC)、ラップトップ、又はモバイル・フォンのような端末デバイスであてもよい。サーバーは専用のゲーム・サーバーであってもよい。今、データ・フローは、サーバーによって記録され、圧縮された後にユーザー・デバイスへ送信される。ユーザー・デバイスは、レンダリング命令をリプレイし(又は実行し)、レンダリング・リソースをプレイし(又は再生し)、レンダリング画像をリプロデュース(再現)してよい。ユーザー・デバイスは、グラフィックス処理ユニット(GPU)を含む。
ダイレクト3D(Direct3D)はウィンドウズ・オペレーティング・システムのためにマイクロソフト・コーポレーションにより開発された3次元(3D)グラフィック・プログラミング・インターフェースであり、このインターフェースは、ウィンドウズの3Dゲーム開発用のベース・ライブラリであり、且つGPUのプログラミング・インターフェースである。
ダイレクト3Dで管理されるGPUリソースは、ストレージ・ロケーションに応じて3種類に分類され、その3種類は:管理リソース・プールにおけるリソース(管理リソース)、デフォルト・リソース・プールにおけるリソース(デフォルト・リソース)、及びシステム・メモリ・リソース・プールにおけるリソース(システム・メモリ・リソース)である。管理リソース・プールにおけるリソースとシステム・メモリ・リソース・プールにおけるリソースとは、GPUロス(GPU loss)により影響されず、GPUロスの場合に処理されることを要しないが、デフォルト・リソース・プールにおけるリソースは、GPUロス後にデバイスは復元されつつあることが検出されると、リリースされ再構築されることを要する。
ユーザー・デバイスは、本開示の実施形態ではデフォルト・リソース・プールにおけるリソースに対応する。ユーザー・デバイスは、スマートフォン又はタブレット・コンピュータのようなスマート端末、MP3プレーヤ(MP3は、「Moving Picture Experts Group Audio Layer III」の略である)、MP4プレーヤ、ラップトップ・コンピュータ、車載オーディオ・デバイス、デスクトップ・コンピュータ等であってもよい。
図2に関し、本開示の実施形態におけるリソースを再構築する方法は、ステップ201ないしステップ205を含む。
ステップ201において、ユーザー・デバイスは、サーバーから送信されるレンダリング・データを受信する。
レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む。データ・フローは、サーバーにより記録され、圧縮された後にユーザー・デバイスへ送信される。ユーザー・デバイスは、サーバーにより送信されるレンダリング・データを受信する。
ステップ202において、ユーザー・デバイスは、レンダリング・リソースに応じてデフォルト・リソース・プールで構築されるGPUリソースを、デフォルト・リソース・プールにおいてホールドされたリソースとして記録する。
ユーザー・デバイスは、レンダリング・リソースをプレイする場合に、デフォルト・リソース・プールにおいて対応するGPUリソースを構築する必要がある。このステップでは、レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースは、デフォルト・リソース・プールにおけるホールドされたリソースとして記録される。レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースが、デフォルト・リソース・プールにおいて保持されたリソースとして既に記録されている場合、それらは保持されたリソースとして再び記録されはしない点に留意すべきである。
ステップ203において、ユーザー・デバイスは、GPUがロスの状態にあるか否かを判断する。ステップ204は、GPUがロスの状態にある場合に実行される。
GPU(グラフィックス処理ユニット)は、グラフィックス・オペレーションを実行するマイクロプロセッサである。GPUの使用権(Use rights of the GPU)は、ダイレクト3Dに基づくゲームがGPUを利用する場合に剥奪されるかもしれず、その剥奪は、事実上のレンダリングの不具合を招き、アプリケーションによりホールドされたGPUリソースもリリースされる。このプロセスは、GPUロスと呼ばれる。GPUロスに関連する別の状態は、GPUリカバリ(GPU recovery)であり、GPUリカバリでは、アプリケーションはGPUの使用権に関して再割り当てを受ける。アプリケーションは、GPUが失われている場合には有効にレンダリングを継続することができず、デバイスが復元される場合、過去にホールドされたGPUリソースはリリースされ再構築される。
実施形態では、レンダリング命令は、GPUの現在状態を検出する第1検出ファンクションを有してもよい。この場合、GPUがロスの状態にあるか否かをユーザー・デバイスが判断するステップは:ユーザー・デバイスがレンダリング命令をリプレイし、第1検出ファンクションにより返される第1リターン値を取得するステップと、ユーザー・デバイスが、第1リターン値に基づいてGPUはロスの状態にあるか否かを判断するステップとを含む。
第1検出ファンクションは、レンダリング命令に含まれるプレゼント・ファンクション(a Present function)であってもよい。GPUロスの場合、プレゼント・ファンクションは「D3DERR_DEVICELOST」を返す。返される値がこの時点で取得される場合、GPUがロスであるか否かが判断されることが可能である。
ステップ204において、ユーザー・デバイスは、GPUリカバリを実行するか否かを判断する。ステップ205は、GPUリカバリを実行するように決定された場合に実行される。
実施形態では、GPUはロスの状態にあると判断した後に、本方法は、レンダリング命令でGPUリカバリを実行すべきかいなかを判断するために、ユーザー・デバイスは第2検出ファンクションを挿入することを更に含んでもよい。この場合、GPUリカバリを実行するか否かをユーザー・デバイスが判断するステップは、ユーザー・デバイスが、レンダリング命令をリプレイし、第2検出ファンクションにより返される第2リターン値を取得すること、及びユーザー・デバイスが、第2リターン値に基づいてGPUリカバリを実行するか否か決定することを含んでもよい。
第2検出ファンクションは、「テスト協同レベル・ファンクション」(a TestCooperativeLevel function)であってもよい。テスト協同レベル・ファンクションのリターン値が「D3DERR_DEVICENOTRESET」として取得される場合、GPUリカバリを実行するように判断される。
実施形態では、テスト協同レベル・ファンクションは、ステップ203でGPUロス状態にあるか否かを判断するために使用されてもよい。テスト協同レベル・ファンクションのリターン値が「D3DERR_DEVICELOST」を含む場合、GPUがロストか否かは、取得されたリターン値に基づいて判断されることが可能である。
ステップ205において、ユーザー・デバイスは、デフォルト・リソース・プールにおけるホールドされたリソースをリリースし、デフォルト・リソース・プールにおけるホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおけるリソースを再構築する。
一般に、ユーザー・デバイスにおけるアプリケーションがグラフィックス処理ユニット(GPU)である場合、GPUの使用権は剥奪されるかもしれず、アプリケーションによりホールドされたGPUリソースもリリースされ、このリリースはGPUロスと呼ばれる。GPUロスに関連する別の状態はGPUリカバリであり、GPUリカバリでは、アプリケーションはGPUの使用権の再割り当てを受ける。デバイスが復元される場合、過去にホールドされたGPUリソースはリリースされ再構築される。
これは、GPUロスの場合に、GPUがグラフィックス・カードとの接触を失うことに起因しており、それにより、グラフィックス・カードに関連する全てのリソースはデバイスにより再びアクセスできなくなり、これらのリソースはリリースされ再構築されなければならない。一般に、パラメータ「D3DPOOL_DEFAULT」(デフォルト・リソース・プール)とともに再構築されるリソースは全てグラフィックス・カードに割り当てられるメモリ・リソースである。従って、デバイスをリセットする前に、「D3DPOOL_DEFAULT」(デフォルト・リソース・プール)タイプの全てのリソースがリリースされることが保証されるべきである。
従って、GPUリカバリを実行するように決定される場合、ユーザー・デバイスは、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築する必要がある。実施形態では、デバイスのロス及びリカバリを処理するためのリセット・ファンクション(a Reset function)は、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築するためにユーザー・デバイスにより使用されてもよい。
本開示の実施形態では、レンダリング・リソースに従ってデフォルト・リソース・プールで構築されるGPUリソースは、サーバーにより送信されたレンダリング・データを受信した後に、デフォルト・リソース・プールにおいてホールドされたリソースとして記録されている。GPUリカバリでは、GPUロスの後、デフォルト・リソース・プールにおいてホールドされたリソースはリリースされ、デフォルト・リソース・プールにおけるリソースは、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて再構築され、これにより、GPUリカバリを実現し、インタラクティブ・アプリケーション・システムにおいて或る状況を回避し、その状況は、全てのデータはサーバーからしか得ることができないことに起因して、GPUのロスの後にGPUが復元できない状況であり、実施形態はシステムのノーマルな利用を保証してユーザーの体感を改善する。
選択的に、本開示の実施形態において、レンダリング命令に応じてデフォルト・リソース・プールにおいて構築されるGPUリソースはターゲットGPUリソースを含み、レンダリング命令はターゲットGPUリソースのライフ・サイクル情報を含む。本方法は、ユーザー・デバイスが、ターゲットGPUリソースのライフ・サイクルを終えた後にターゲットGPUリソースをリリースし、ターゲットGPUリソースがデフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するステップを更に含む。即ち、デフォルト・リソース・プールにおいてホールドされたGPUリソースは、リソースのライフ・サイクルが終わった後にリリースされ、そのリソースはデフォルト・リソース・プールにおいてホールドされた旨の記録は削除され、この削除は、リソースの更に有効利用を達成し、デフォルト・リソース・プールにおいてホールドされたリソースを再構築する場合に不要なリソース再構築を回避する。
選択的に、本開示の実施形態では、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいてデフォルト・リソース・プールにおいてリソースを再構築した後に、本方法は、ユーザー・デバイスが、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断し、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築することを更に含んでもよい。
或る特殊な場合では、デフォルト・リソース・プールにおいてホールドされたリソースが全て成功裏に再構築されたとは限らない場合がたまたま生じるかもしれず、その場合、デフォルト・リソース・プールにおいてホールドされたリソースをリリース及び再構築するステップが再実行され、その再実行は、デフォルト・リソース・プールにおいてホールドされたリソースが成功裏に再構築されることを保証する。
以下、ユーザー・デバイスで動作するクラウド・ゲーム・クライアントがユーザー・デバイスの例として使用される具体的なアプリケーションのシナリオとともに、リソースを構築する上記方法が説明される。図3に関し、クラウド・ゲーム・サーバー上でゲームが動作している。データ・フローは、クラウド・ゲーム・サーバーにより記録され、圧縮された後に、クラウド・ゲーム・クライアントへインターネットを介して送信される。クラウド・ゲーム・クライアントは、レンダリング命令をリプレイし、レンダリング・データをプレイし、レンダリング画像を再現する。実施形態では、クラウド・ゲーム・サーバーから受信されるレンダリング・リソースに従って、デフォルト・リソース・プールにおいて構築されるGPUリソースを記録するために、ダイレクト3D状態レコーダーがクラウド・ゲーム・クライアントに提供される。
図4に関し、本開示の別の実施形態におけるリソースを再構築する方法は、ステップ401ないしステップ406を含む。
ステップ401において、クラウド・ゲーム・クライアントは、クラウド・ゲーム・サーバーにより送信されたレンダリング・データを受信する。
レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む。
ステップ402において、クラウド・ゲーム・クライアントは、ダイレクト3D状態レコーダーにより、レンダリング・リソースに従ってダイレクト・リソースで構築されるGPUリソースを、デフォルト・リソースにおいてホールドされたリソースとして記録する。
レンダリング命令は、プレゼント・ファンクションを含む。
ステップ403において、テスト協同レベル・ファンクションが、レンダリング命令に挿入される。
テスト協同レベル・ファンクションは、GPUリカバリを実行するか否かを判断するために使用される。
ステップ404において、クラウド・ゲーム・クライアントは、GPUがロスの状態にあるか否かを判断するために、レンダリング命令をリプレイする。ステップ405は、GPUがロスの状態にある場合に実行される。
GPUがロスの状態にあるか否かを判断するために、クラウド・ゲーム・クライアントがレンダリング命令をリプレイするステップは、クラウド・ゲーム・クライアントが、レンダリング命令をリプレイし、プレゼント・ファンクションのリターン値に基づいて、GPUがロスの状態にあるか否かを判断するステップを含んでもよい。プレゼント・ファンクションは、GPUがロスの状態に或る場合に「D3DERR_DEVICELOST」を返し、GPUがロスであるか否かは、リターン値が取得された場合に判断されることが可能である。
ステップ405において、クラウド・ゲーム・クライアントは、GPUリカバリを実行するか否かを判断する。
テスト協同レベル・ファンクションから取得されるリターン値が「D3DERR_DEVICENOTRESET」である場合、GPUリカバリを実行するように決定される。
ステップ406において、クラウド・ゲーム・クライアントは、デフォルト・リソースにおいてホールドされたリソースをリリースし、GPUリカバリを実行するように判断された場合に、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築する。
以下、ユーザー・デバイスの実施形態が説明される。ユーザー・デバイスはクラウド・インタラクティブ・システムに含まれる。クラウド・インタラクティブ・システムはサーバーも含む。サーバーは、グラフィックス処理ユニット(GPU)を含む。GPUはデフォルト・リソース・プールに対応する。
図5に関し、本開示の実施形態におけるユーザー・デバイス500は、受信ユニット501と、記録ユニット502と、判断ユニット503と、再構築ユニット504とを含む。
受信ユニット501は、サーバーにより送信されたレンダリング・データを受信するように構成され、レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む。
レンダリング・ユニット502は、レンダリング・リソースに従ってデフォルト・リソース・プールにおいて構築されるGPUリソースを、デフォルト・リソース・プールにおいてホールドされたリソースとして記録するように構成される。
判断ユニット503は、GPUがロスの状態にあるか否かを判断し、GPUがロスの状態にあった場合、GPUリカバリを実行するか否かを判断するように構成される。
再構築ユニット504は、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、GPUリカバリを実行するように判断された場合には、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築するように構成される。
本開示の実施形態では、レンダリング・リソースに従ってデフォルト・リソース・プールにおいて構築されるGPUリソースは、サーバーにより送信されたレンダリング・データを受信ユニット501により受信した後に、デフォルト・リソース・プールにおいてホールドされたリソースとして記録ユニット502により記録される。GPUのロスの後に、GPUリカバリを実行するように判断ユニット503により判断された場合、デフォルト・リソース・プールにおいてホールドされたリソースは、リリースされ、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、再構築ユニット504により再構築され、これにより、GPUリカバリを実現し、インタラクティブ・アプリケーション・システムにおいて或る状況を回避し、その状況は、全てのデータはサーバーからしか得ることができないことに起因して、GPUのロスの後にGPUが復元できない状況であり、実施形態はシステムのノーマルな利用を保証してユーザーの体感を改善する。
選択的に、レンダリング命令は、GPUの現在状態を検出する第1検出ファンクションを含む。
判断ユニット503は、レンダリング命令をリプレイし、第1ファンクションにより返される第1リターン値を取得し、第1リターン値に基づいて、GPUはロスの状態にあるか否かを判断するように構成される。
選択的に、ユーザー・デバイスは挿入ユニットを更に含む。
挿入ユニットは、GPUがロスの状態にあることが判断された後に、GPUリカバリを実行するか否かを検出する第2検出ファンクションをレンダリング命令に挿入するように構成される。
判断ユニット503は、レンダリング命令をリプレイし、第2検出ファンクションにより返される第2リターン値を取得し、第2リターン値に基づいてGPUリカバリを実行するか否かを判断するように更に構成される。
選択的に、レンダリング命令に従ってデフォルト・リソース・プールにおいて構築されるGPUリソースは、ターゲットGPUリソースを含み、レンダリング命令は、ターゲットGPUリソースのライフ・サイクル情報を含む。
ユーザー・デバイスは削除ユニットを更に含む。
削除ユニットは、ターゲットGPUリソースのライフ・サイクルが終了した後に、ターゲットGPUリソースをリリースし、ターゲットGPUリソースがデフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するように構成される。
デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいてデフォルト・リソースにおいてリソースを再構築した後に、再構築ユニット504は、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断するように更に構成され、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、再構築ユニット504は、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築するように構成される。
本開示の実施形態におけるユーザー・デバイスは上記の機能的なエンティティの観点から説明されているが、以下、ハードウェア処理の観点から更に説明される。図6に関し、ユーザー・デバイスはクラウド・インタラクティブ・システムに適用され、クラウド・インタラクティブ・システムはサーバーを含む。本開示の実施形態におけるユーザー・デバイス600は、入力デバイス601と、出力デバイス602と、プロセッサ603と、メモリ604とを含む(プロセッサ603の個数は1つ又は複数であってもよく、図6では一例として1つのプロセッサ603が示されている)。ユーザー・デバイスはGPU605を更に含む。GPU605はデフォルト・リソース・プールに対応する。本開示の或る実施形態では、入力デバイス601と、出力デバイス602と、プロセッサ603と、メモリ604と、GPU605とはバスその他の手段により接続されることが可能である。図6では一例としてバス接続が示されている。
本開示の実施形態に関わるユーザー・デバイスは、図6に示されているものより多い又は少ないパーツを含んでもよく、2つ以上のコンポーネントを結合してもよく、或いは、異なるパーツの構成又は設定を有していてもよい。各々のコンポーネントは、1つ以上の信号処理及び/又は特定用途向け集積回路を含むハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。
メモリ604に保存されているオペレーション命令を呼び出すことにより、プロセッサ603は、以下のステップを実行するように使用され、そのステップは:入力ユニット601を介して、サーバーにより送信されたレンダリング・データを受信するステップであって、レンダリング・データは、レンダリング命令と、レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;及びレンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースを、デフォルト・リソース・プールにおいてホールドされたリソースとして記録するステップである。
メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は、以下のステップを実行するように使用され、そのステップは:GPUはロスの状態であるか否かを判断し、GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断し、GPUリカバリを実行するように判断された場合に、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、デフォルト・リソース・プールにおいてリソースを再構築するステップである。
選択的に、レンダリング命令は、GPUの現在状態を検出する第1検出ファンクションを含む。メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は以下のステップを実行するように使用され、そのステップは、レンダリング命令をリプレイし、第1検出ファンクションによって返される第1リターン値を取得し、第1リターン値に基づいて、GPUはロスの状態にあるか否かを判断するステップである。
選択的に、メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は以下のステップを実行するように更に使用され、そのステップは、GPUがロスの状態にあると判断された後に、GPUリカバリを実行するか否かを検出するための第2検出ファンクションをレンダリング命令に挿入するステップである。
メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は以下のステップを実行するように更に使用され、そのステップは、レンダリング命令をリプレイし、第2検出ファンクションにより返される第2リターン値を取得し、
第2リターン値に基づいて、GPUリカバリを実行するか否かを判断するステップである。
選択的に、レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースはターゲットGPUリソースを含み、レンダリング命令はターゲットGPUリソースのライフ・サイクル情報を含む。
メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は以下のステップを実行するように更に使用され、そのステップは、ターゲットGPUリソースのライフ・サイクルが終了した後に、ターゲットGPUリソースをリリースし、ターゲットGPUリソースがデフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するステップである。
選択的に、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいてデフォルト・リソース・プールにおいてリソースを再構築した後に、メモリ604に保存されているオペレーション命令を呼び出すことにより、GPU605は以下のステップを実行するように更に使用され、そのステップは、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断し、デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップである。
実施形態では、メモリ604はソフトウェア・プログラム及びモジュールを保存するために使用されてもよく、プロセッサ603は、メモリ604に保存されるソフトウェア・プログラム及びモジュールを動作させることにより、様々な機能アプリケーション及びデータ処理を実行する。
メモリ604は、主に、プログラム・ストレージ・エリア及びデータ・ストレージ・エリアを含んでもよい。プログラム・ストレージ・エリアは、オペレーティング・システム、少なくとも1つの機能により必要とされるアプリケーション等を保存してよい。データ・ストレージ・エリアは、サーバーの利用に応じて作成されるデータ(例えば、ミラーリングされたコンテナ・データ)等を保存するために使用されてもよい。更に、メモリ604は、高速ランダム・アクセス・メモリを含んでもよく、また、少なくとも1つのディスク・ストレージ・デバイス及びフラッシュ・メモリ・デバイスのような不揮発性メモリ、或いはその他の揮発性ソリッド・ステート・ストレージ・デバイスを含んでもよい。
プロセッサ603は信号処理能力を有する集積回路チップであってもよい。或る実現手段では、上記方法の各ステップは、集積論理回路、又はプロセッサ603内のソフトウェア形式の命令により完結されてもよい。
プロセッサ604は、汎用プロセッサ、ディジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)その他のプログラム可能な論理デバイス、ディスクリート・ゲート又はトランジスタ論理デバイス、ディスクリート・ハードウェア・コンポーネントであってもよく、それらはパブリック・アプリケーションの方法、ステップ及び論理ブロック・ダイアグラムを実現又は実行することが可能なものである。汎用プロセッサはマイクロプロセッサ又は任意の標準的なプロセッサであってもよい。
本開示の実施形態で開示される方法のステップは、ハードウェア・デコード・プロセッサにより、或いは、デコード・プロセッサにおけるハードウェア及びソフトウェア・モジュールの組み合わせにより、直接的に実行されてもよい。ソフトウェア・モジュールは、ランダム・メモリ、フラッシュ・メモリ、リード・オンリ・メモリ、プログラマブル・リード・オンリ・メモリ、電気的に消去可能なプログラマブル・メモリ、レジスタ等のような当該技術分野で成熟している記憶媒体に存在してもよい。記憶媒体はメモリ604内に位置していてもよい。プロセッサ603は、メモリ604内の情報を読み込み、そのハードウェアにより上記の方法ステップを完結する。
コンピュータ記憶媒体も本開示の実施形態で提供され、コンピュータ記憶媒体はプログラムを保存する。プログラムは上記の方法の実施形態におけるリソースを再構築する方法ステップの全部又は一部を含む。
説明の簡便化のため、上記の実施形態において、各実施形態の説明は特定の重点を有することが、当業者に明らかである。或る実施形態で詳細ではない説明に関し、他の実施形態の関連する説明が参照されてよい。
上記の方法の実施形態は簡明化のために一連のアクションの組み合わせとして説明されていることに留意すべきである。本開示はアクションの説明された順番に限定されず、或るステップについては、本開示によるものと異なる順番で又は同時に実行されてよいことを、当業者は理解すべきである。また、本明細書で説明される実施形態は全て好ましい実施形態であり、包含されるアクション及びモジュールは必須でないかもしれないことも、当業者は理解すべきである。
本開示の実施形態によるシステム、デバイス及び方法は他の形式で実現されてもよいことが、理解されるべきである。例えば、上記の装置の実施形態は例示的なものであるに過ぎない。例えば、ユニットの区分けは単なる論理的な機能的な区分けに過ぎず、実際の実現手段では他の区分けが存在し得る。例えば、幾つかのユニット又はコンポーネントは互いに組み合わせられてもよいし、或いは他のシステムに統合されてもよいし、或いは何らの特徴が無視される又は実現されなくてもよい。更に、表示される又は議論される相互結合又は直接的なカップリング或いは通信コネクションは、何らかのインターフェース、デバイス又はユニットを介する間接的なカップリング又は通信コネクションであってもよく、電気的、機械的又は他の形式であってもよい。
個別的なコンポーネントとして説明されるユニットは、物理的に分離していてもしていなくてもよく、ユニットとして示されるコンポーネントは、一箇所に位置する又は複数のネットワーク・ユニットに分散されている物理的なユニットであってもなくてもよい。全部又は一部のユニットが、本開示の目的を達成するために必要に応じて選択されてよい。
更に、本開示による実施形態における複数の機能ユニットは、1つの処理ユニットに統合されてもよいし、或いはそれらのユニットは物理的に分離したユニットであってもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。上記の統合されたユニットは、ハードウェアの形式で、又はソフトウェア機能ユニットの形式で実現されてもよい。
統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立した製品として販売又は使用される場合、統合されたユニットはコンピュータ読み取り可能な記憶媒体に保存されてもよい。そのような理解に基づいて、本開示の技術的解決手段の本質、従来技術に寄与する部分、或いは技術的解決手段の全部又は一部は、ソフトウェア製品の形式で実現されてよい。コンピュータ・ソフトウェア製品は、記憶媒体に保存され、本開示に従う実施形態で説明される方法ステップの全部又は一部の実行をコンピュータ・デバイス(パーソナル・コンピュータ、サーバー、又はウェブ・デバイスであってもよい)に指図する複数の命令を含む。記憶媒体は、USBフラッシュ・ディスク、取り外し可能なハード・ディスク、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ディスケット又は光ディスクのような、プログラム・コードを保存することが可能な任意の媒体であってよい。
上記の実施形態は、本開示の技術的解決手段を限定するものではなく単なる例示に過ぎない。上記の実施形態に関連して詳細な説明がなされているが、本開示の技術的解決手段又は何らかの技術的特徴に対して、変形及び代替が当業者により為されてよい。そのような如何なる変形又は均等物も、本開示の実施形態の技術的解決手段の精神及び範囲から逸脱した技術的解決手段にはならない。

Claims (11)

  1. リソースを再構築する方法であって、前記方法はユーザー・デバイスとサーバーとを有するクラウド・インタラクティブ・システムに適用され、前記ユーザー・デバイスは、デフォルト・リソース・プールに対応するグラフィックス処理ユニット(GPU)を有し、前記方法は:
    前記ユーザー・デバイスが、前記サーバーにより送信されたレンダリング・データを受信するステップであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;
    前記ユーザー・デバイスが、前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録するステップ;
    前記ユーザー・デバイスが、前記GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断するステップ;及び
    前記GPUリカバリを実行するように判断された場合に、前記ユーザー・デバイスが、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を有し、
    前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースがターゲットGPUリソースを含み、前記レンダリング命令は前記ターゲットGPUリソースのライフ・サイクル情報を含み;
    前記方法は:
    前記ユーザー・デバイスが、前記ターゲットGPUリソースのライフ・サイクルが終了した後に、前記ターゲットGPUリソースをリリースし、前記ターゲットGPUリソースが前記デフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するステップ;
    を更に有する
    方法。
  2. リソースを再構築する方法であって、前記方法はユーザー・デバイスとサーバーとを有するクラウド・インタラクティブ・システムに適用され、前記ユーザー・デバイスは、デフォルト・リソース・プールに対応するグラフィックス処理ユニット(GPU)を有し、前記方法は:
    前記ユーザー・デバイスが、前記サーバーにより送信されたレンダリング・データを受信するステップであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;
    前記ユーザー・デバイスが、前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録するステップ;
    前記ユーザー・デバイスが、前記GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断するステップ;及び
    前記GPUリカバリを実行するように判断された場合に、前記ユーザー・デバイスが、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を有し、
    前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて前記デフォルト・リソース・プールにおいてリソースを再構築した後に、前記方法は:
    前記ユーザー・デバイスが、前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断し、前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を更に有する
    方法。
  3. 前記レンダリング命令は、前記GPUの現在状態を検出する第1検出ファンクションを含み;
    前記ユーザー・デバイスが、前記GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断するステップは:
    前記ユーザー・デバイスが、前記レンダリング命令をリプレイし、前記第1検出ファンクションによって返される第1リターン値を取得するステップ;及び
    前記ユーザー・デバイスが、前記第1リターン値に基づいて、前記GPUはロスの状態にあるか否かを判断するステップ;
    を含む、請求項1又は2に記載の方法。
  4. 前記GPUがロスの状態にあると判断された後に、前記方法は:
    前記ユーザー・デバイスが、前記GPUリカバリを実行するか否かを検出するための第2検出ファンクションを前記レンダリング命令に挿入するステップ;
    を含み、前記ユーザー・デバイスが、前記GPUリカバリを実行するか否かを判断するステップは:
    前記ユーザー・デバイスが、レンダリング命令をリプレイし、前記第2検出ファンクションにより返される第2リターン値を取得するステップ;及び
    前記ユーザー・デバイスが、前記第2リターン値に基づいて、前記GPUリカバリを実行するか否かを判断するステップ;
    を有する、請求項1又は2に記載の方法。
  5. クラウド・インタラクティブ・システムに含まれるユーザー・デバイスであって、前記クラウド・インタラクティブ・システムはサーバーも含み、前記ユーザー・デバイスは、デフォルト・リソース・プールに対応するグラフィックス処理ユニット(GPU)を有し、前記ユーザー・デバイスは:
    前記サーバーにより送信されたレンダリング・データを受信するように構成される受信ユニットであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、受信ユニット;
    前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録する記録ユニット;
    前記GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断する判断ユニット;及び
    前記GPUリカバリを実行するように判断された場合に、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築する再構築ユニット;
    を有し、
    前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースがターゲットGPUリソースを含み、前記レンダリング命令は前記ターゲットGPUリソースのライフ・サイクル情報を含み;
    前記ユーザー・デバイスは:
    前記ターゲットGPUリソースのライフ・サイクルが終了した後に、前記ターゲットGPUリソースをリリースし、前記ターゲットGPUリソースが前記デフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するように構成される削除ユニット;
    を更に有する
    ユーザー・デバイス。
  6. クラウド・インタラクティブ・システムに含まれるユーザー・デバイスであって、前記クラウド・インタラクティブ・システムはサーバーも含み、前記ユーザー・デバイスは、デフォルト・リソース・プールに対応するグラフィックス処理ユニット(GPU)を有し、前記ユーザー・デバイスは:
    前記サーバーにより送信されたレンダリング・データを受信するように構成される受信ユニットであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、受信ユニット;
    前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録する記録ユニット;
    前記GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断する判断ユニット;及び
    前記GPUリカバリを実行するように判断された場合に、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築する再構築ユニット;
    を有し、
    前記再構築ユニットは、
    前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて前記デフォルト・リソース・プールにおいてリソースを再構築した後に、前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断し;及び
    前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築する;
    ように更に構成される
    ユーザー・デバイス。
  7. 前記レンダリング命令は、前記GPUの現在状態を検出する第1検出ファンクションを含み;
    前記判断ユニットは、前記レンダリング命令をリプレイし、前記第1検出ファンクションによって返される第1リターン値を取得し、前記第1リターン値に基づいて、前記GPUはロスの状態にあるか否かを判断するように構成される;
    請求項5又は6に記載のユーザー・デバイス。
  8. 前記GPUがロスの状態にあると判断された後に、前記GPUリカバリを実行するか否かを検出するための第2検出ファンクションを前記レンダリング命令に挿入するように構成される挿入ユニット;
    を更に有し、前記判断ユニットは、前記レンダリング命令をリプレイし、前記第2検出ファンクションにより返される第2リターン値を取得し、前記第2リターン値に基づいて、前記GPUリカバリを実行するか否かを判断するように更に構成される;
    請求項5又は6に記載のユーザー・デバイス。
  9. ユーザー・デバイス及びサーバーを有するクラウド・インタラクティブ・システムであって、前記ユーザー・デバイスは、は請求項5ないし8のうち何れか一項に記載のユーザー・デバイスである、クラウド・インタラクティブ・システム。
  10. 1つ以上のコンピュータ・プログラムを保存する不揮発性記憶媒体であって、前記コンピュータ・プログラムは1つ以上のメモリを有するプロセッサにより実行される命令を有し、前記命令は、コンピュータにより実行される場合に、前記コンピュータにオペレーションを実行させ、前記オペレーションは:
    サーバーにより送信されたレンダリング・データを受信するステップであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;
    前記レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録するステップ;
    GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断するステップ;及び
    前記GPUリカバリを実行するように判断された場合に、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を有し、
    前記レンダリング・リソースに応じて前記デフォルト・リソース・プールにおいて構築されるGPUリソースがターゲットGPUリソースを含み、前記レンダリング命令は前記ターゲットGPUリソースのライフ・サイクル情報を含み;
    前記オペレーションは:
    前記コンピュータが、前記ターゲットGPUリソースのライフ・サイクルが終了した後に、前記ターゲットGPUリソースをリリースし、前記ターゲットGPUリソースが前記デフォルト・リソース・プールにおいてホールドされたリソースである旨の記録を削除するステップ;
    を更に有する
    不揮発性記憶媒体。
  11. 1つ以上のコンピュータ・プログラムを保存する不揮発性記憶媒体であって、前記コンピュータ・プログラムは1つ以上のメモリを有するプロセッサにより実行される命令を有し、前記命令は、コンピュータにより実行される場合に、前記コンピュータにオペレーションを実行させ、前記オペレーションは:
    サーバーにより送信されたレンダリング・データを受信するステップであって、前記レンダリング・データは、レンダリング命令と、前記レンダリング命令に対応するレンダリング・リソースとを含む、ステップ;
    前記レンダリング・リソースに応じてデフォルト・リソース・プールにおいて構築されるGPUリソースを、前記デフォルト・リソース・プールにおいてホールドされたリソースとして記録するステップ;
    GPUはロスの状態であるか否かを前記レンダリング命令に応じて判断し、前記GPUがロスの状態にあった場合に、GPUリカバリを実行するか否かを判断するステップ;及び
    前記GPUリカバリを実行するように判断された場合に、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を有し、
    前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて前記デフォルト・リソース・プールにおいてリソースを再構築した後に、前記オペレーションは:
    前記コンピュータが、前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたか否かを判断し、前記デフォルト・リソース・プールにおいてホールドされたリソース全てが成功裏に再構築されたとは限らない場合、前記デフォルト・リソース・プールにおいてホールドされたリソースをリリースし、前記デフォルト・リソース・プールにおいてホールドされたリソースの記録に基づいて、前記デフォルト・リソース・プールにおいてリソースを再構築するステップ;
    を更に有する
    不揮発性記憶媒体。
JP2018538859A 2016-01-29 2017-01-25 Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体 Active JP6715334B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610067210.1A CN105740061B (zh) 2016-01-29 2016-01-29 一种gpu资源重建的方法、用户设备及系统
CN201610067210.1 2016-01-29
PCT/CN2017/072537 WO2017129117A1 (zh) 2016-01-29 2017-01-25 一种gpu资源重建的方法、用户设备,系统及存储介质

Publications (2)

Publication Number Publication Date
JP2019509547A JP2019509547A (ja) 2019-04-04
JP6715334B2 true JP6715334B2 (ja) 2020-07-01

Family

ID=56247261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018538859A Active JP6715334B2 (ja) 2016-01-29 2017-01-25 Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体

Country Status (4)

Country Link
JP (1) JP6715334B2 (ja)
KR (1) KR102091961B1 (ja)
CN (1) CN105740061B (ja)
WO (1) WO2017129117A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740061B (zh) * 2016-01-29 2019-05-31 腾讯科技(深圳)有限公司 一种gpu资源重建的方法、用户设备及系统
CN114968478B (zh) * 2018-03-06 2025-03-14 华为技术有限公司 一种数据处理的方法、装置、服务器和系统
CN110648272B (zh) * 2019-08-21 2023-10-03 北京达佳互联信息技术有限公司 图形资源转换方法、装置、电子设备及存储介质
CN110502399B (zh) * 2019-08-23 2023-09-01 广东浪潮大数据研究有限公司 故障检测方法及装置
CN111680015B (zh) 2020-05-29 2023-08-11 北京百度网讯科技有限公司 文件资源处理方法、装置、设备和介质
CN113347432B (zh) * 2021-05-27 2023-03-28 深圳万兴软件有限公司 一种视频编解码方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618159B1 (ko) * 2004-08-05 2006-08-29 한국정보통신대학교 산학협력단 정책 쿼럼 기반의 그리드 자원 관리 시스템 및 그 방법
US7827491B2 (en) 2006-05-12 2010-11-02 Tran Bao Q Systems and methods for video editing
TWI369126B (en) 2006-08-01 2012-07-21 Nvidia Corp Multi-graphics processor system and method for processing content communicated over a network for display purposes
CN100555245C (zh) * 2007-01-10 2009-10-28 中兴通讯股份有限公司 资源存储方法及装置
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US8803892B2 (en) * 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
US9146909B2 (en) 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
CN102866919B (zh) * 2012-07-31 2014-11-05 电子科技大学 一种基于云端绘制的大规模三维场景多人协同创作方法
CN103595828A (zh) * 2012-08-13 2014-02-19 南京杰诺瀚软件科技有限公司 一种扩展手机和平板电脑功能的装置和方法
CN104822429A (zh) * 2012-11-28 2015-08-05 辉达公司 掌上游戏机
CN103095828B (zh) * 2013-01-14 2016-03-30 上海电力学院 基于云渲染的Web3D同步会议系统及实现同步的方法
KR20150054484A (ko) * 2013-11-12 2015-05-20 주식회사 시큐아이 웹 어플리케이션을 구동하는 컴퓨팅 장치 및 그것의 응답시간 측정 방법
CN105740061B (zh) * 2016-01-29 2019-05-31 腾讯科技(深圳)有限公司 一种gpu资源重建的方法、用户设备及系统

Also Published As

Publication number Publication date
KR102091961B1 (ko) 2020-03-20
WO2017129117A1 (zh) 2017-08-03
KR20180100626A (ko) 2018-09-11
JP2019509547A (ja) 2019-04-04
CN105740061A (zh) 2016-07-06
CN105740061B (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
JP6715334B2 (ja) Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体
KR20220125198A (ko) 데이터의 추가 기록 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램매체
CN104620230A (zh) 管理存储器的方法
CN113986134B (zh) 存储数据的方法、读取数据的方法和装置
CN118433440A (zh) 视频播放方法、装置、电子设备及计算机可读存储介质
CN113282237A (zh) 分区创建方法、装置、存储介质及计算机设备
CN110399168B (zh) 多数据盘存储服务器的系统启动方法、装置及设备
CN113986599B (zh) 一种应用处理方法、终端、服务器、设备及存储介质
CN115373609A (zh) 任务处理方法及相关设备
CN120255809A (zh) 元数据管理方法、装置、电子设备和存储介质
CN111063387B (zh) 一种固态硬盘性能测试方法、装置、设备及存储介质
CN103713952A (zh) 一种基于ufs的虚拟磁盘分布式存储方法
CN111142787A (zh) 存储分层的数据交换测试方法、系统、终端及存储介质
CN116916060A (zh) 视频处理方法及相关设备
CN104750547A (zh) 虚拟机的输入输出io请求处理方法及装置
CN115480880A (zh) 一种持续数据保护方法、系统及电子设备
CN110703988B (zh) 一种分布式存储的存储池创建方法、系统、终端及存储介质
CN115934999A (zh) 一种基于块文件的视频流数据存储方法、装置及介质
CN114253752A (zh) 一种应用程序崩溃处理方法、装置、设备及介质
CN116501603A (zh) 测试基于js sdk的视频直播功能的方法及装置
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN111625192B (zh) 一种元数据对象访问方法、装置、设备以及介质
CN114071225A (zh) 一种帧动画播放方法、装置和系统
CN111026720A (zh) 一种文件处理方法、系统及相关设备
CN105893394B (zh) 一种大文件模拟方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200608

R150 Certificate of patent or registration of utility model

Ref document number: 6715334

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250