KR102091961B1 - GPU resource reconstruction method, user device, system and storage medium - Google Patents
GPU resource reconstruction method, user device, system and storage medium Download PDFInfo
- Publication number
- KR102091961B1 KR102091961B1 KR1020187022500A KR20187022500A KR102091961B1 KR 102091961 B1 KR102091961 B1 KR 102091961B1 KR 1020187022500 A KR1020187022500 A KR 1020187022500A KR 20187022500 A KR20187022500 A KR 20187022500A KR 102091961 B1 KR102091961 B1 KR 102091961B1
- Authority
- KR
- South Korea
- Prior art keywords
- resources
- gpu
- resource pool
- default resource
- rendering
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend 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)
Abstract
본 출원의 실시예들에서는 자원 재구성 방법, 사용자 디바이스, 및 시스템이 개시되며, 이 방법은: 클라우드 대화형 시스템에서 이용되고, 클라우드 대화형 시스템은 사용자 디바이스 및 서버를 포함하며, 사용자 디바이스는 GPU를 포함하고, GPU는 대응하는 디폴트 자원 푸울을 가지며, 본 출원의 실시예들에서의 방법은: 사용자 디바이스가 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하는 단계; 렌더링 자원들에 의해 디폴트 자원 푸울에서 생성될 것이 요구되는 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계; 렌더링 명령어에 기초하여, 사용자 디바이스가 GPU가 손실 상태인지를 결정하고, 만일 그렇다면 GPU 복구를 구현할지를 결정하는 단계; GPU 복구를 구현하기로 결정하면, 사용자 디바이스가 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 기록된 자원들에 기초하여, 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 포함한다. 본 출원의 실시예들은 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시킨다.In embodiments of the present application, a resource reconfiguration method, a user device, and a system are disclosed, which method is used in a cloud interactive system, the cloud interactive system includes a user device and a server, and the user device uses a GPU. And the GPU has a corresponding default resource pool, and the method in the embodiments of the present application is: rendering data transmitted by the user device to the server-the rendering data includes rendering instructions and rendering resources corresponding to the rendering instructions. Receiving-receiving; Recording GPU resources required to be generated in the default resource pool by rendering resources as retained resources in the default resource pool; Based on rendering instructions, the user device determining whether the GPU is in a lost state, and if so, determining whether to implement GPU recovery; If it is decided to implement GPU recovery, the user device releases the retained resources in the default resource pool and reconstructs the resources in the default resource pool based on the retained recorded resources in the default resource pool. Embodiments of the present application ensure the normal use of the system and enhance the user experience.
Description
본 출원은, 그 전체내용이 참조로 본 명세서에 포함되는 2016년 1월 29일 중국 특허청에 출원된 발명의 명칭이 "GPU RESOURCE RECONSTRUCTION METHOD, USER DEVICE AND SYSTEM"인 중국 특허 출원 제201610067210.1호의 우선권을 주장한다.This application takes precedence over the priority of Chinese patent application No. 201610067210.1, entitled "GPU RESOURCE RECONSTRUCTION METHOD, USER DEVICE AND SYSTEM", filed with the Chinese Patent Office on January 29, 2016, the entire contents of which are incorporated herein by reference. Insist.
기술분야Technology field
본 개시내용은 클라우드 기술의 기술 분야에 관한 것으로, 특히 자원들을 재구성하기 위한 방법, 사용자 디바이스 및 시스템에 관한 것이다.The present disclosure relates to the technical field of cloud technology, and more particularly, to a method, user device and system for reconfiguring resources.
최근, 단말기 기술 및 네트워크 대역폭의 급속한 발전에 따라, 클라우드 컴퓨팅 기술의 성숙도의 증가는 클라우드 대화형 시스템을 촉진하고 있다. 기존의 클라우드 대화형 시스템은 대개 서버와 복수의 사용자 디바이스를 포함하며, 여기서, 서버는 클러스터 서버일 수 있고 복수의 대화형 애플리케이션이 대화형 시스템에서 실행될 수 있다.In recent years, with the rapid development of terminal technology and network bandwidth, the increase in maturity of cloud computing technology is promoting a cloud interactive system. Existing cloud interactive systems usually include a server and multiple user devices, where the server can be a cluster server and multiple interactive applications can run on the interactive system.
현재, 기존 기술의 클라우드 대화형 시스템에서 이미지 렌더링 응용과 관련하여, 이미지를 렌더링하고 렌더링된 이미지 프레임을 사용자 디바이스에 전송하는 것은 서버의 책임이며, 사용자 디바이스는 렌더링된 이미지 프레임을 수신한 후 이미지 프레임을 직접 디코딩하고 이미지를 디스플레이한다. 클라우드 대화형 시스템에서, GPU 자원들의 이용 상태는 이미지를 디스플레이하는 사용자 디바이스에 직접 기록되지 않으며, 이것은 GPU가 손실된 후 GPU를 재구성하는 경우에 GPU 자원들을 해제하고 재구성하지 못하게 한다.Currently, it is the server's responsibility to render the image and send the rendered image frame to the user device in relation to the image rendering application in the cloud interactive system of the existing technology, and the user device receives the rendered image frame and then the image frame Decode directly and display the image. In a cloud interactive system, the utilization status of GPU resources is not recorded directly on the user device displaying the image, which prevents the GPU resources from being released and reconstructed when the GPU is reconstructed after the GPU is lost.
본 개시내용의 실시예들에서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시키는, 자원들을 재구성하기 위한 방법, 사용자 디바이스, 시스템 및 저장 매체가 제공된다.In embodiments of the present disclosure, a method, user device, system, and storage medium for reconfiguring resources are provided that ensure normal use of the system and enhance the user experience.
본 개시내용의 제1 양태는 자원들을 재구성하기 위한 방법을 제공하는 것이다. 이 방법은 클라우드 대화형 시스템에 적용된다. 클라우드 대화형 시스템은 사용자 디바이스와 서버를 포함한다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.A first aspect of the present disclosure is to provide a method for reconfiguring resources. This method applies to cloud interactive systems. Cloud interactive systems include user devices and servers. The user device includes a GPU that is a graphics processing unit. The GPU corresponds to the default resource pool.
이 방법은: 사용자 디바이스에 의해, 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하는 단계; 사용자 디바이스에 의해, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계; 렌더링 명령어에 따라 사용자 디바이스에 의해, GPU가 손실 상태인지를 결정하고, GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 단계; 및 GPU 복구를 수행하기로 결정되면, 사용자 디바이스에 의해, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 포함한다.The method comprises: receiving, by the user device, rendering data sent by the server, wherein the rendering data includes rendering instructions and rendering resources corresponding to the rendering instructions; Recording, by the user device, GPU resources to be configured in the default resource pool according to rendering resources as retained resources in the default resource pool; Determining, by the user device, whether the GPU is in a lost state according to the rendering instruction, and determining whether to perform GPU recovery when the GPU is in a lost state; And if it is determined to perform GPU recovery, releasing, by the user device, retained resources in the default resource pool, and reconfiguring resources in the default resource pool based on a record of retained resources in the default resource pool. .
본 개시내용의 제2 양태는 사용자 디바이스를 제공하는 것이다. 사용자 디바이스는 클라우드 대화형 시스템에 포함된다. 클라우드 대화형 시스템은 서버를 더 포함한다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.A second aspect of the present disclosure is to provide a user device. User devices are included in cloud interactive systems. The cloud interactive system further includes a server. The user device includes a GPU that is a graphics processing unit. The GPU corresponds to the default resource pool.
사용자 디바이스는: 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하도록 구성된 수신 유닛; 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된 기록 유닛; 렌더링 명령어에 따라 GPU가 손실 상태인지를 결정하고, GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된 결정 유닛; 및 GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된 재구성 유닛을 포함한다.The user device comprises: a receiving unit, configured to receive rendering data sent by the server, wherein the rendering data includes rendering instructions and rendering resources corresponding to the rendering instructions; A recording unit, configured to record GPU resources to be configured in the default resource pool according to rendering resources as retained resources in the default resource pool; A determining unit, configured to determine whether the GPU is in a lost state according to the rendering instruction, and determine whether to perform GPU recovery when the GPU is in a lost state; And a reconfiguration unit, configured to release the retained resources in the default resource pool and reconstruct the resources in the default resource pool based on a record of retained resources in the default resource pool when it is determined to perform GPU recovery.
본 개시내용의 제3 양태는, 사용자 디바이스 및 서버를 포함하는, 클라우드 대화형 시스템을 제공하는 것이다. 사용자 디바이스는 제2 양태에 따른 사용자 디바이스이다.A third aspect of the present disclosure is to provide a cloud interactive system comprising a user device and a server. The user device is a user device according to the second aspect.
본 개시내용의 제4 양태는 컴퓨터를 위한 판독가능한 명령어들을 저장하는 비휘발성 저장 매체를 제공하는 것이다. 명령어들이 컴퓨터에 의해 실행될 때, 컴퓨터는 전술된 바와 같은 자원들을 재구성하는 방법을 실행한다.A fourth aspect of the present disclosure is to provide a non-volatile storage medium that stores readable instructions for a computer. When instructions are executed by a computer, the computer executes a method for reconfiguring resources as described above.
도 1은 클라우드 게임 아키텍쳐의 개략도이다;
도 2는 본 개시내용의 한 실시예에 따른 GPU 자원들을 재구성하기 위한 방법의 개략도이다;
도 3은 본 개시내용의 한 실시예에 따른 GPU 자원들을 재구성하기 위한 방법에서의 클라우드 게임 아키텍쳐의 특정한 개략도이다;
도 4는 본 개시내용의 또 다른 실시예에 따른 GPU 자원들을 재구성하기 위한 방법의 개략도이다;
도 5는 본 개시내용의 한 실시예에 따른 사용자 디바이스의 개략도이다;
도 6은 본 개시내용의 또 다른 실시예에 따른 사용자 디바이스의 개략도이다.1 is a schematic diagram of a cloud game architecture;
2 is a schematic diagram of a method for reconstructing GPU resources according to one embodiment of the present disclosure;
3 is a specific schematic diagram of a cloud game architecture in a method for reconstructing GPU resources according to one embodiment of the present disclosure;
4 is a schematic diagram of a method for reconstructing GPU resources according to another embodiment of the present disclosure;
5 is a schematic diagram of a user device according to one embodiment of the present disclosure;
6 is a schematic diagram of a user device according to another embodiment of the present disclosure.
본 개시내용의 실시예들에서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시키는, 자원들을 재구성하기 위한 방법, 사용자 디바이스, 시스템 및 저장 매체가 제공된다.In embodiments of the present disclosure, a method, user device, system, and storage medium for reconfiguring resources are provided that ensure normal use of the system and enhance the user experience.
본 개시내용의 실시예들에 따른 기술적 솔루션들은, 본 기술분야의 통상의 기술자가 본 개시내용에 따른 기술적 솔루션들을 더 잘 이해할 수 있게 하도록, 본 개시내용에 따른 도면들과 연계하여 이하에서 명확하고 완전하게 설명된다. 명백하게, 설명된 실시예들은 본 개시내용의 모든 실시예가 아닌 일부일 뿐이다. 어떠한 창조적 노력 없이 본 개시내용의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 획득되는 임의의 다른 실시예들은 본 개시내용의 보호 범위에 속한다.The technical solutions according to the embodiments of the present disclosure are clearly described below in connection with the drawings according to the present disclosure, so that those skilled in the art may better understand the technical solutions according to the present disclosure. It is fully explained. Apparently, the described embodiments are only a part rather than all of the embodiments of the present disclosure. Any other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without any creative effort fall within the protection scope of the present disclosure.
본 개시내용의 전술된 명세서, 청구항들, 및 도면들에서 (있는 경우) "제1", "제2" 등의 용어는 유사한 객체들의 특정한 순서 또는 우선순위를 나타내기 위한 것이 아니라 단지 유사한 객체들을 구분하기 위해 여기서 사용될 뿐이다. 본 명세서에 사용된 용어들은, 본 개시내용의 실시예들이 여기서 나타낸 것들과는 다른 순서로 구현될 수 있도록, 서로 바꾸어 사용될 수 있다는 것을 이해해야 한다. 또한, "포함하는", "포함하는" 또는 임의의 다른 변형의 용어는 비배타적인 것으로 의도된다. 예를 들어, 일련의 단계들 또는 유닛들을 포함하는 프로세스, 방법, 시스템, 항목 또는 디바이스는, 명확하게 열거된 단계들 또는 유닛들로 제한되지 않고, 명확하게 열거되지 않거나 프로세스, 방법, 또는 항목 또는 디바이스에 고유한 다른 단계들 또는 유닛들을 더 포함할 수 있다.In the foregoing specification, claims, and drawings of the present disclosure, the terms “first”, “second”, and the like (if any) are not intended to indicate a specific order or priority of similar objects, but merely to similar objects. It is only used here to distinguish. It should be understood that the terms used herein may be used interchangeably so that embodiments of the present disclosure may be implemented in a different order than those shown herein. Also, the terms “comprising”, “comprising” or any other modification are intended to be non-exclusive. For example, a process, method, system, item or device comprising a series of steps or units is not limited to the steps or units explicitly listed, but is not explicitly listed or is a process, method, or item or Other steps or units specific to the device may be further included.
본 개시내용에서 자원들을 재구성하기 위한 방법의 실시예들이 이하에서 먼저 소개된다.Embodiments of a method for reconfiguring resources in the present disclosure are first introduced below.
도 1에 도시된 바와 같이, 본 개시내용의 한 실시예에서의 자원들을 재구성하는 방법은 클라우드 대화형 시스템에 적용된다. 클라우드 대화형 시스템은 사용자 디바이스와 서버를 포함한다. 복수의 사용자 디바이스가 있을 수 있다. 서버는 클러스터 서버일 수 있다. 복수의 대화형 애플리케이션은 클라우드 대화형 시스템에서 실행될 수 있다. 사용자 디바이스는, 개인용 컴퓨터(PC), 랩탑 또는 모바일 전화 등의 단말 디바이스일 수 있다. 서버는 전용 게임 서버일 수 있다. 현재, 데이터 흐름은 서버에 의해 기록되고 압축된 후에 사용자 디바이스에 전송된다. 사용자 디바이스는 렌더링 명령어를 재연(replay)하고, 렌더링 자원들을 재생(play)하며, 렌더링 이미지를 재현(reproduce)할 수 있다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다.As shown in FIG. 1, the method of reconfiguring resources in one embodiment of the present disclosure is applied to a cloud interactive system. Cloud interactive systems include user devices and servers. There may be multiple user devices. The server can be a cluster server. A plurality of interactive applications can run on a cloud interactive system. The user device may be a terminal device such as a personal computer (PC), laptop or mobile phone. The server may be a dedicated game server. Currently, the data flow is recorded by the server and compressed before being transmitted to the user device. The user device may replay rendering commands, play rendering resources, and reproduce the rendered image. The user device includes a GPU that is a graphics processing unit.
Direct3D는 Microsoft Corporation에 의해 Windows 운영 체제용으로 개발된 3차원(3D) 그래픽 프로그래밍 인터페이스로서, Windows 상의 3D 게임 및 GPU의 프로그래밍 인터페이스의 개발을 위한 기본 라이브러리이다.Direct3D is a three-dimensional (3D) graphical programming interface developed by Microsoft Corporation for the Windows operating system, and is a basic library for the development of programming interfaces for 3D games and GPUs on Windows.
Direct3D에서 관리되는 GPU 자원들은 저장 위치에 따라 3개의 유형으로 분류된다: 관리대상 자원 푸울 내의 자원들(관리대상 자원들), 디폴트 자원 푸울 내의 자원들(디폴트 자원들), 및 시스템 메모리 자원 푸울 내의 자원들(시스템 메모리 자원들). 관리대상 자원 푸울 내의 자원들과 시스템 메모리 자원 푸울 내의 자원들은 GPU 손실에 의해 영향을 받지 않고 GPU 손실의 경우 처리될 필요가 없는 반면, 디폴트 자원 푸울 내의 자원들은 GPU 손실 후 디바이스가 복구 중임이 검출될 때 해제되고 재구성될 필요가 있다.GPU resources managed in Direct3D are classified into three types according to storage locations: resources in the managed resource pool (managed resources), resources in the default resource pool (default resources), and system memory resource pools. Resources (system memory resources). Resources in the managed resource pool and resources in the system memory resource pool are not affected by GPU loss and need not be processed in case of GPU loss, whereas resources in the default resource pool can be detected that the device is recovering after GPU loss. When it needs to be released and reconstructed.
사용자 디바이스는 본 개시내용의 실시예에서 디폴트 자원 푸울에 대응한다. 사용자 디바이스는, 스마트폰 또는 태블릿 컴퓨터 등의 스마트 단말기, 또는 MP3(Moving Picture Experts Group Audio Layer III) 재생기, MP4(Moving Picture Experts Group Audio Layer IV) 재생기, 랩탑 컴퓨터, 차량용 오디오 디바이스, 데스크탑 컴퓨터 등일 수 있다.The user device corresponds to the default resource pool in embodiments of the present disclosure. The user device may be a smart terminal, such as a smartphone or tablet computer, or a Moving Picture Experts Group Audio Layer III (MP3) player, a Moving Picture Experts Group Audio Layer IV (MP4) player, a laptop computer, a car audio device, a desktop computer, and the like. have.
도 2를 참조하면, 본 개시내용의 한 실시예에서의 자원들을 재구성하기 위한 방법은 단계 201 내지 단계 205를 포함한다.Referring to FIG. 2, a method for reconfiguring resources in an embodiment of the present disclosure includes
단계 201에서, 사용자 디바이스는 서버에 의해 전송된 렌더링 데이터를 수신한다.In
렌더링 데이터는, 렌더링 명령어, 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다. 데이터 흐름은 서버에 의해 기록되고 압축된 후 사용자 디바이스에 전송된다. 사용자 디바이스는 서버에 의해 전송된 렌더링 데이터를 수신한다.The rendering data includes rendering instructions and rendering resources corresponding to the rendering instructions. The data flow is recorded by the server and compressed before being transmitted to the user device. The user device receives rendering data sent by the server.
단계 202에서, 사용자 디바이스는, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록한다.In
사용자 디바이스는 렌더링 자원들을 재생할 때 디폴트 자원 푸울 내의 대응하는 GPU 자원들을 구성할 필요가 있다. 이 단계에서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들이 이미 디폴트 자원 푸울 내의 보유된 자원들로서 기록된 경우, 이들은 다시 보유 자원들로서 기록되지 않는다는 점에 유의해야 한다.The user device needs to configure the corresponding GPU resources in the default resource pool when playing rendering resources. In this step, GPU resources to be configured in the default resource pool according to rendering resources are recorded as retained resources in the default resource pool. It should be noted that if GPU resources to be configured in the default resource pool according to rendering resources are already recorded as retained resources in the default resource pool, they are not recorded again as retained resources.
단계 203에서, 사용자 디바이스는 GPU가 손실 상태인지를 결정한다. 단계 204는 GPU가 손실 상태인 경우 실행된다.In
GPU(Graphics Processing Unit; 그래픽 처리 유닛)는 그래픽 연산을 수행하는 마이크로프로세서이다. Direct3D 기반 게임이 GPU를 이용하고 있을 때 GPU의 이용 권한이 박탈될 수 있고, 이것은 유효한 렌더링의 실패로 이어지며, 애플리케이션에 의해 보유된 GPU 자원들도 역시 해제된다. 이 프로세스를 GPU 손실이라고 한다. GPU 손실과 연관된 또 다른 상태는, 애플리케이션이 GPU의 이용 권한을 재할당받는 GPU 복구이다. GPU가 손실될 때 애플리케이션은 렌더링을 사실상 계속할 수 없고, 디바이스가 복원되면, 이전에 보유된 GPU 자원들은 해제되고 재구성된다.A GPU (Graphics Processing Unit) is a microprocessor that performs graphics operations. When a Direct3D-based game is using the GPU, the GPU's usage rights may be deprived, which leads to a failure of valid rendering, and the GPU resources held by the application are also released. This process is called GPU loss. Another condition associated with GPU loss is GPU recovery, where the application is reassigned to the GPU. When the GPU is lost, the application cannot actually continue rendering, and when the device is restored, previously held GPU resources are released and reconstructed.
실시예에서, 렌더링 명령어는 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함할 수 있다. 이 경우, 사용자 디바이스가 GPU가 손실 상태인지를 결정하는 단계는 다음을 포함한다: 사용자 디바이스는 렌더링 명령어를 재연하고 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 사용자 디바이스는 제1 반환 값에 기초하여 GPU가 손실 상태인지를 결정한다.In an embodiment, the rendering instruction may include a first detection function for detecting the current state of the GPU. In this case, the steps for the user device to determine if the GPU is in a lost state include: the user device reproduces the rendering instruction and obtains the first return value returned by the first detection function, and the user device is first Based on the return value, it is determined whether the GPU is in a lost state.
제1 검출 함수는 렌더링 명령어에 포함되는 Present 함수일 수 있다. GPU 손실의 경우 Present 함수는 D3DERR_DEVICELOST를 반환한다. 반환 값이 이 시점에서 획득되면, GPU가 손실되었는지가 결정될 수 있다.The first detection function may be a Present function included in the rendering command. In case of GPU loss, the Present function returns D3DERR_DEVICELOST. If the return value is obtained at this point, it can be determined whether the GPU is lost.
단계 204에서, 사용자 디바이스는 GPU 복구를 수행할지를 결정한다. GPU 복구를 수행하기로 결정된다면 단계 205가 실행된다.In
이 실시예에서, GPU가 손실 상태라고 결정한 후에, 이 방법은, 사용자 디바이스가 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 렌더링 명령어에 삽입하는 것을 더 포함할 수 있다. 이 경우, 사용자 디바이스가 GPU 복구를 수행할지를 결정하는 단계는, 사용자 디바이스가 렌더링 명령어를 재연하고 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 것을 포함할 수 있으며, 사용자 디바이스는 제2 반환 값에 기초하여 GPU 복구를 수행할지를 결정한다.In this embodiment, after determining that the GPU is in a lost state, the method may further include inserting a second detection function into the rendering command to detect whether the user device is performing GPU recovery. In this case, the step of determining whether the user device performs GPU recovery may include the user device replaying the rendering command and obtaining the second return value returned by the second detection function, wherein the user device is the second. Decide whether to perform GPU recovery based on the return value.
제2 검출 함수는 TestCooperativeLevel 함수일 수 있다. TestCooperativeLevel 함수의 반환 값이 D3DERR_DEVICENOTRESET으로서 획득되면, GPU 복구를 수행하기로 결정된다.The second detection function may be a TestCooperativeLevel function. When the return value of the TestCooperativeLevel function is obtained as D3DERR_DEVICENOTRESET, it is decided to perform GPU recovery.
이 실시예에서, TestCooperativeLevel 함수는 또한, 단계 203에서 GPU 손실 상태인지를 결정하는데 이용될 수 있다. TestCooperativeLevel 함수의 반환 값이 D3DERR_DEVICELOST를 포함한다면, 획득된 반환 값에 기초하여 GPU가 손실되었는지가 결정될 수 있다.In this embodiment, the TestCooperativeLevel function can also be used in
단계 205에서, 사용자 디바이스는 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한다.In
일반적으로, 사용자 디바이스 내의 애플리케이션이 GPU(Graphics Processing Unit)를 이용할 때, GPU의 이용 권한이 박탈될 수 있고, 애플리케이션에 의해 보유된 GPU 자원들도 역시 해제되는데, 이것을 GPU 손실이라 부른다. GPU 손실과 연관된 또 다른 상태는, 애플리케이션이 GPU의 이용 권한을 재할당받는 GPU 복구이다. 디바이스가 복원되면, 이전에 보유된 GPU 자원들은 해제되고 재구성된다.Generally, when an application in a user device uses a GPU (Graphics Processing Unit), the usage rights of the GPU may be deprived, and GPU resources held by the application are also released, which is called GPU loss. Another condition associated with GPU loss is GPU recovery, where the application is reassigned to the GPU. When the device is restored, previously held GPU resources are released and reconstructed.
이것은, GPU 손실의 경우 GPU는 그래픽 카드와의 연락을 잃어, 그래픽 카드에 관련된 모든 자원들이 디바이스에 의해 다시 액세스될 수 없으므로 이들 자원들은 해제되고 재구성되어야 하기 때문이다. 일반적으로, 파라미터 D3DPOOL_DEFAULT(디폴트 자원 푸울)로 구성된 자원들은 그래픽 카드에 할당된 모든 메모리 자원들이다. 따라서, 디바이스를 리셋하기 전에, D3DPOOL_DEFAULT(디폴트 자원 푸울) 유형의 모든 자원들이 해제되는 것이 보장되어야 한다.This is because in case of GPU loss, the GPU loses contact with the graphics card, so all resources related to the graphics card cannot be accessed again by the device, so these resources must be released and reconfigured. Generally, the resources configured with the parameter D3DPOOL_DEFAULT (default resource pool) are all memory resources allocated to the graphics card. Therefore, before resetting the device, it should be ensured that all resources of type D3DPOOL_DEFAULT (default resource pool) are released.
따라서, GPU 복구를 수행하기로 결정할 때, 사용자 디바이스는 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성할 필요가 있다. 이 실시예에서, 디바이스 손실 및 복구를 처리하기 위한 리셋 기능이 사용자 디바이스에 의해 이용되어 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성할 수 있다.Thus, when deciding to perform GPU recovery, the user device needs to release the retained resources in the default resource pool, and reconstruct the resources in the default resource pool based on a record of the retained resources in the default resource pool. In this embodiment, a reset function for handling device loss and recovery is used by the user device to release retained resources in the default resource pool, and resources in the default resource pool based on a record of retained resources in the default resource pool. You can reconstruct them.
본 개시내용의 실시예들에서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은, 서버에 의해 전송된 렌더링 데이터를 수신한 후에 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. GPU가 손실된 후 GPU 복구에서, 디폴트 자원 푸울 내의 보유된 자원들은 해제되고 디폴트 자원 푸울 내의 자원들은 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 재구성됨으로써 GPU 복구를 실현하고, 모든 데이터는 서버로부터만 획득될 수 있다는 사실 때문에 GPU 손실 후에 GPU가 복구될 수 없는 대화형 애플리케이션 시스템에서의 상황을 피할 수 있어서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시킨다.In embodiments of the present disclosure, GPU resources to be configured in the default resource pool according to rendering resources are recorded as retained resources in the default resource pool after receiving rendering data sent by the server. In GPU recovery after GPU is lost, retained resources in the default resource pool are released and resources in the default resource pool are reconstructed based on a record of retained resources in the default resource pool to realize GPU recovery, and all data is from the server. Due to the fact that it can only be obtained, the situation in an interactive application system where the GPU cannot be recovered after a GPU loss can be avoided, thereby ensuring the normal use of the system and improving the user experience.
선택사항으로서, 본 개시내용의 실시예들에서, 렌더링 명령어에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 렌더링 명령어는 타겟 GPU 자원들의 라이프 사이클 정보를 포함한다. 이 방법은, 사용자 디바이스가 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 타겟 GPU 자원들을 해제하고, 타겟 GPU 자원들이 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 것을 더 포함한다. 즉, 디폴트 자원 푸울 내의 보유된 GPU 자원들은 자원들의 라이프 사이클이 끝난 후에 해제되고, 자원들이 디폴트 자원 푸울 내에 보유되어 있다는 기록이 삭제되며, 이것은 자원들의 더 효율적인 이용을 달성하고 디폴트 자원 푸울 내의 보유된 자원들을 재구성할 때 불필요한 자원들 재구성을 피한다.Optionally, in embodiments of the present disclosure, GPU resources to be configured in the default resource pool according to the rendering instruction include target GPU resources, and the rendering instruction includes life cycle information of target GPU resources. The method further includes the user device releasing the target GPU resources after the life cycle of the target GPU resources is over, and deleting the record that the target GPU resources are retained resources in the default resource pool. That is, GPU resources retained in the default resource pool are released after the life cycle of the resources is over, and the record that the resources are retained in the default resource pool is deleted, which achieves more efficient use of resources and is retained in the default resource pool. When reconfiguring resources, avoid reconfiguring unnecessary resources.
선택사항으로서, 본 개시내용의 실시예들에서, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한 후에, 이 방법은, 사용자 디바이스가 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 것을 더 포함한다.Optionally, in embodiments of the present disclosure, after reconfiguring the resources in the default resource pool based on a record of the retained resources in the default resource pool, this method allows the user device to retain all retained resources in the default resource pool. Determines whether they have been successfully reconfigured, and if all retained resources in the default resource pool are not successfully reconfigured, release the retained resources in the default resource pool and default resources based on the record of retained resources in the default resource pool. Further comprising reconfiguring the resources in the pool.
일부 특별한 경우에, 디폴트 자원 푸울 내의 보유된 자원들이 모두 성공적으로 재구성된 것은 아닌 경우가 발생할 수 있으며, 이 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 재구성하는 단계가 재실행될 수 있어서, 디폴트 자원 푸울 내의 보유된 자원들이 성공적으로 재구성되는 것을 보장한다.In some special cases, it may happen that not all resources held in the default resource pool have been successfully reconfigured, in which case the step of releasing and reconfiguring the retained resources in the default resource pool can be re-executed, thereby resetting the default resource. It ensures that the resources held in the pool are successfully reconstructed.
이하, 자원들을 구성하기 위한 상기 방법이, 사용자 디바이스 상에서 실행되는 클라우드 게임 클라이언트가 사용자 디바이스의 한 예로서 취해지는 특정한 애플리케이션 시나리오를 이용하여 설명된다. 도 3을 참조하면, 게임이 클라우드 게임 서버 상에서 실행된다. 데이터 흐름은 클라우드 게임 서버에 의해 기록되고 압축된 후에 인터넷을 통해 클라우드 게임 클라이언트에 전송된다. 클라우드 게임 클라이언트는 렌더링 명령어를 재연하고, 렌더링 데이터를 재생하며, 렌더링 이미지를 재현한다. 이 실시예에서, 클라우드 게임 클라이언트에 Direct3D 상태 기록기가 제공되어 클라우드 게임 서버로부터 수신된 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 기록한다.Hereinafter, the above method for configuring resources is described using a specific application scenario in which a cloud game client running on a user device is taken as an example of the user device. Referring to FIG. 3, the game is executed on a cloud game server. The data flow is recorded and compressed by the cloud game server and then transmitted to the cloud game client via the Internet. The cloud game client reproduces rendering commands, plays rendering data, and reproduces the rendered image. In this embodiment, a Direct3D state recorder is provided to the cloud game client to record GPU resources to be configured in the default resource pool according to rendering resources received from the cloud game server.
도 4를 참조하면, 본 개시내용의 또 다른 실시예에서의 자원들을 재구성하기 위한 방법은 단계 401 내지 단계 406을 포함한다.4, a method for reconfiguring resources in another embodiment of the present disclosure includes
단계 401에서, 클라우드 게임 클라이언트는 클라우드 게임 서버에 의해 전송된 렌더링 데이터를 수신한다.In
렌더링 데이터는, 렌더링 명령어, 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다.The rendering data includes rendering instructions and rendering resources corresponding to the rendering instructions.
단계 402에서, 클라우드 게임 클라이언트는, Direct3D 상태 기록기에 의해, 렌더링 자원들에 따라 디폴트 자원들에서 구성될 GPU 자원들을 디폴트 자원들 내의 보유된 자원들로서 기록한다.In
렌더링 명령어는 Present 함수를 포함한다.Rendering instructions include the Present function.
단계 403에서, TestCooperativeLevel 함수가 렌더링 명령어에 삽입된다.In
TestCooperativeLevel 함수는 GPU 복구를 수행할지를 검출하는데 이용된다.The TestCooperativeLevel function is used to detect whether to perform GPU recovery.
단계 404에서, 클라우드 게임 클라이언트는 GPU가 손실 상태인지를 결정하기 위해 렌더링 명령어를 재연한다. 단계 405는 GPU가 손실 상태인 경우 실행된다.In
클라우드 게임 클라이언트가 렌더링 명령어를 재연하여 GPU가 손실 상태인지를 결정하는 단계는, 클라우드 게임 클라이언트가 렌더링 명령어를 재연하고, Present 함수의 반환 값에 기초하여, GPU가 손실 상태인지를 결정하는 것을 포함할 수 있다. Present 함수는 GPU가 손실 상태인 경우 D3DERR_DEVICELOST를 반환하고 GPU가 손실되었는지는 반환 값이 획득될 때 결정될 수 있다.The step of the cloud game client replaying the rendering instructions to determine whether the GPU is in a lossy state includes the cloud game client replaying the rendering instructions and based on the return value of the Present function, determining whether the GPU is in a lossy state. You can. The Present function returns D3DERR_DEVICELOST when the GPU is in a lost state, and whether the GPU is lost can be determined when the return value is obtained.
단계 405에서, 클라우드 게임 클라이언트는 GPU 복구를 수행할지를 결정한다.In
TestCooperativeLevel 함수로부터 획득된 반환 값이 D3DERR_DEVICENOTRESET이면 GPU 복구를 수행하기로 결정된다.If the return value obtained from the TestCooperativeLevel function is D3DERR_DEVICENOTRESET, it is decided to perform GPU recovery.
GPU 복구를 수행하기로 결정되면, 단계 406에서, 클라우드 게임 클라이언트가 디폴트 자원들 내의 보유된 자원들을 해제하고, 디폴트 자원들 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한다.If it is decided to perform GPU recovery, in
사용자 디바이스의 한 실시예는 다음과 같이 설명된다. 사용자 디바이스는 클라우드 대화형 시스템에 포함된다. 클라우드 대화형 시스템은 또한 서버를 포함한다. 서버는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.One embodiment of a user device is described as follows. User devices are included in cloud interactive systems. Cloud interactive systems also include servers. The server includes a GPU that is a graphics processing unit. The GPU corresponds to the default resource pool.
도 5를 참조하면, 본 개시내용의 한 실시예의 사용자 디바이스(500)는, 수신 유닛(501), 기록 유닛(502), 결정 유닛(503), 및 재구성 유닛(504)을 포함한다.Referring to FIG. 5, a
수신 유닛(501)은 서버에 의해 전송된 렌더링 데이터를 수신하도록 구성되고, 여기서, 렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다.The receiving
기록 유닛(502)은, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된다.The
결정 유닛(503)은, GPU가 손실 상태인지를 결정하고 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된다.The determining
GPU 복구를 수행하기로 결정되면, 재구성 유닛(504)은 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된다.If it is decided to perform GPU recovery, the
본 개시내용의 실시예에서, 렌더링 자원들에 따라 디폴트 자원 푸울에 구성될 GPU 자원들은, 서버에 의해 전송된 렌더링 데이터를 수신 유닛(501)에 의해 수신한 후에 기록 유닛(502)에 의해 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. GPU가 손실된 후 결정 유닛(503)에 의해 GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들은 해제되고, 디폴트 자원 푸울 내의 자원들은 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 재구성 유닛(504)에 의해 재구성됨으로써, GPU의 복구를 실현하고, 모든 데이터는 서버로부터만 획득될 수 있다는 사실로 인해 GPU의 손실 후에 GPU가 복구될 수 없는 대화형 애플리케이션 시스템에서의 상황을 피할 수 있어서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시킨다.In an embodiment of the present disclosure, GPU resources to be configured in the default resource pool according to the rendering resources are the default resources by the
선택사항으로서, 렌더링 명령어는 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함한다.Optionally, the rendering instruction includes a first detection function for detecting the current state of the GPU.
결정 유닛(503)은, 렌더링 명령어를 재연하고, 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하며, 제1 반환 값에 기초하여 GPU가 손실 상태인지를 결정하도록 구성된다.The determining
선택사항으로서, 사용자 디바이스는 삽입 유닛을 더 포함한다.Optionally, the user device further comprises an insertion unit.
삽입 유닛은, GPU가 손실 상태라고 결정된 후에, GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 렌더링 명령어에 삽입하도록 구성된다.The insertion unit is configured to insert a second detection function into the rendering instruction to detect whether to perform GPU recovery after the GPU is determined to be in a lost state.
결정 유닛(503)은 또한, 렌더링 명령어를 재연하고, 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하고, 제2 반환 값에 기초하여 GPU 복구를 수행할지를 결정하도록 구성된다.The determining
선택사항으로서, 렌더링 명령어에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 렌더링 명령어는 타겟 GPU 자원들의 라이프 사이클 정보를 포함한다.Optionally, GPU resources to be configured in the default resource pool according to the rendering command include target GPU resources, and the rendering command includes life cycle information of target GPU resources.
사용자 디바이스는 삭제 유닛을 더 포함한다.The user device further includes a deletion unit.
삭제 유닛은, 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 타겟 GPU 자원들을 해제하고, 타겟 GPU 자원들이 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하도록 구성된다.The deletion unit is configured to release the target GPU resources after the life cycle of the target GPU resources is over, and delete the record that the target GPU resources are retained resources in the default resource pool.
디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성 한 후, 재구성 유닛(504)은 또한, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하도록 구성되고, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 재구성 유닛(504)은, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울에서 자원들을 재구성하도록 구성된다.After reconstructing the resources in the default resource pool based on a record of the retained resources in the default resource pool, the
본 개시내용의 실시예에서의 사용자 디바이스는 전술된 기능 엔티티들의 관점에서 설명되었지만, 다음과 같이 하드웨어 처리의 관점에서 더 설명된다. 도 6을 참조하면, 사용자 디바이스는 클라우드 대화형 시스템에 적용되고, 클라우드 대화형 시스템은 서버를 포함한다. 본 개시내용의 실시예에서의 사용자 디바이스(600)는, 입력 디바이스(601), 출력 디바이스(602), 프로세서(603), 및 메모리(604)를 포함한다(프로세서(603)의 수는 하나 이상일 수 있고, 도 6에는 하나의 프로세서(603)가 예로서 도시되어 있다). 사용자 디바이스는 GPU(605)를 더 포함한다. GPU(605)는 디폴트 자원 푸울에 대응한다. 본 개시내용의 일부 실시예에서, 입력 디바이스(601), 출력 디바이스(602), 프로세서(603), 메모리(604) 및 GPU(605)는 버스 또는 기타의 수단에 의해 접속될 수 있다. 도 6에서는 버스 접속이 예로서 도시되어 있다.The user device in an embodiment of the present disclosure has been described in terms of the functional entities described above, but is further described in terms of hardware processing as follows. Referring to FIG. 6, the user device is applied to a cloud interactive system, and the cloud interactive system includes a server.
본 개시내용의 실시예에 포함된 사용자 디바이스는 도 6에 도시된 것보다 더 많거나 더 적은 부분들을 포함하거나, 2개 이상의 컴포넌트를 결합하거나, 또는 상이한 부분 구성 또는 설정을 가질 수 있다. 각각의 컴포넌트는, 하나 이상의 신호 처리 및/또는 주문형 집적 회로를 포함한 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.A user device included in an embodiment of the present disclosure may include more or fewer parts than shown in FIG. 6, combine two or more components, or have different part configurations or settings. Each component can be implemented in hardware, software, or a combination thereof, including one or more signal processing and / or custom integrated circuits.
메모리(604)에 저장된 동작 명령어를 호출함으로써, 프로세서(603)는, 입력 유닛(601)을 통해, 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하고; 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계들을 실행하는데 이용된다.By invoking the operation instructions stored in the
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, GPU가 손실 상태인지를 결정하고, GPU가 손실 상태라면 GPU 복구를 수행할지를 결정하고, GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계들을 실행하는데 이용된다.By invoking the operation instructions stored in
선택사항으로서, 렌더링 명령어는 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함한다. 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 렌더링 명령어를 재연하고, 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 제1 반환 값에 기초하여 GPU가 손실되었는지를 결정하는 단계를 실행하는데 이용된다.Optionally, the rendering instruction includes a first detection function for detecting the current state of the GPU. By invoking the operation instructions stored in
선택사항으로서, 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는 또한, GPU가 손실 상태라고 결정한 후에, GPU 복구를 수행할지를 결정하기 위한 제2 검출 함수를 렌더링 명령어에 삽입하는 단계를 실행하는데 이용된다.Optionally, by invoking an operation instruction stored in
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 렌더링 명령어를 재연하고, 제2 반환 값에 기초하여 GPU 복구를 수행할지를 결정하는 단계들을 실행하는데 이용된다.By invoking the operation instruction stored in the
선택사항으로서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 렌더링 명령어는 타겟 GPU 자원들의 라이프 사이클 정보를 포함한다.Optionally, GPU resources to be configured in the default resource pool according to rendering resources include target GPU resources, and the rendering instruction includes life cycle information of target GPU resources.
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 타겟 GPU 자원들을 해제하고, 타겟 GPU 자원들이 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 단계들을 실행하는데 이용된다.By invoking the operation instructions stored in the
선택사항으로서, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한 후, 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는 또한, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계들을 실행하는데 이용된다.Optionally, after reconstructing the resources in the default resource pool based on a record of the retained resources in the default resource pool, by invoking an operation instruction stored in
이 실시예에서, 메모리(604)는 소프트웨어 프로그램 및 모듈을 저장하는데 이용될 수 있고, 프로세서(603)는 메모리(604)에 저장된 소프트웨어 프로그램 및 모듈을 실행함으로써 다양한 기능 애플리케이션 및 데이터 처리를 수행한다.In this embodiment,
메모리(604)는 주로, 프로그램 저장 영역 및 데이터 저장 영역을 포함할 수 있다. 프로그램 저장 영역은, 운영 체제, 적어도 하나의 기능에 의해 요구되는 애플리케이션 등을 저장할 수 있다. 데이터 저장 영역은, (미러링된 컨테이너 데이터 등의) 서버의 이용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(604)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한, 적어도 하나의 자기 디스크 디바이스 및 플래시 메모리 디바이스 등의 비휘발성 메모리, 또는 다른 휘발성 솔리드-스테이트 저장 디바이스를 포함할 수 있다.The
프로세서(603)는 신호 처리 능력을 갖춘 집적 회로 칩일 수 있다. 헌 구현에서, 상기 방법의 각각의 단계는 프로세서(603)에서 통합된 논리 회로 또는 소프트웨어의 형태의 명령어를 통해 완료될 수 있다.The
프로세서(603)는, 공개 애플리케이션의 방법, 단계 및 논리 블록도를 구현하거나 실행할 수 있는, 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 디바이스, 개별 게이트 또는 트랜지스터 로직 디바이스, 및 개별 하드웨어 컴포넌트일 수 있다. 일반적인 프로세서는 마이크로프로세서 또는 임의의 종래 프로세서일 수 있다.
본 개시내용의 실시예들에 개시된 방법의 단계들은 하드웨어 디코드 프로세서에 의해 직접 실행되거나, 디코딩 프로세서에서 하드웨어 및 소프트웨어 모듈의 조합에 의해 실행될 수 있다. 소프트웨어 모듈은, 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그래머블 판독 전용 메모리, 전기적으로 소거가능한 프로그래머블 메모리, 또는 레지스터 등의 본 기술분야의 성숙된 저장 매체에 위치할 수도 있다. 저장 매체는 메모리(604)에 위치한다. 프로세서(604)는 메모리(604) 내의 정보를 판독하고, 그 하드웨어와 함께 상기 방법 단계들을 완료한다.The steps of the method disclosed in the embodiments of the present disclosure can be executed directly by a hardware decode processor, or by a combination of hardware and software modules in a decoding processor. The software module may be located in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. The storage medium is located in
본 개시내용의 실시예에서는 컴퓨터 저장 매체도 제공되며, 컴퓨터 저장 매체는 프로그램을 저장한다. 프로그램은 상기 방법 실시예들에서 자원들을 재구성하기 위한 방법의 일부 또는 모든 단계를 포함한다.In an embodiment of the present disclosure, a computer storage medium is also provided, and the computer storage medium stores a program. The program includes some or all steps of the method for reconfiguring resources in the method embodiments.
설명의 편의 및 간소화를 위해, 전술된 실시예들에서, 각각의 실시예에 대한 설명은 특정한 강조를 가진다는 것이 본 기술분야의 통상의 기술자에게는 명백하다. 한 실시예에서 상세히 설명되지 않은 설명에 대해서는, 다른 실시예의 관련 설명을 참조할 수 있다.For convenience and simplicity of description, it is apparent to those skilled in the art that in the above-described embodiments, the description of each embodiment has a specific emphasis. For descriptions that are not described in detail in one embodiment, reference may be made to related descriptions in other embodiments.
상기 방법 실시예는 간결성을 위해 일련의 동작들의 조합으로서 설명되었다는 점에 유의해야 한다. 본 기술분야의 통상의 기술자라면, 개시된 동작 순서로 제한되지 않고 일부 단계들은 다른 순서로 또는 본 개시내용에 따라 동시에 수행될 수 있다는 것을 알아야 한다. 또한, 본 기술분야의 통상의 기술자라면, 본 명세서에서 설명된 실시예들은 모두 바람직한 실시예이고, 수반된 동작들 및 모듈들이 반드시 필요한 것은 아님을 알아야 한다.It should be noted that the method embodiment has been described as a combination of a series of actions for brevity. It should be understood by those skilled in the art that the steps are not limited to the order of operation disclosed and that some steps may be performed in other orders or concurrently in accordance with the present disclosure. In addition, it should be understood by those skilled in the art that the embodiments described herein are all preferred embodiments, and the accompanying operations and modules are not necessarily required.
본 개시내용의 실시예들에 따른 시스템, 디바이스 및 방법은 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 전술된 장치 실시예들은 단지 예시적인 것이다. 예를 들어, 유닛들의 분할은 단지 논리적인 기능 분할이고 실제적인 구현에서는 다른 분할이 있을 수 있다. 예를 들어, 일부 유닛들 또는 컴포넌트들은 서로 결합되거나 또 다른 시스템에 통합될 수 있고, 또는 일부 피쳐들은 무시되거나 구현되지 않을 수도 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 접속은, 일부 인터페이스, 디바이스 또는 유닛들을 통한 간접 결합 또는 통신 접속일 수 있으며, 전기적, 기계적 또는 기타의 형태일 수 있다.It should be understood that systems, devices and methods according to embodiments of the present disclosure may be implemented in other ways. For example, the device embodiments described above are merely exemplary. For example, the division of units is only logical functional division and in actual implementation there may be other divisions. For example, some units or components may be combined with each other or integrated into another system, or some features may be ignored or not implemented. Further, the indicated or discussed mutually coupled or direct coupled or communication connection may be an indirectly coupled or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other form.
별개의 컴포넌트들로서 설명된 유닛들은 물리적으로 분리되거나 분리되지 않을 수도 있고, 유닛들로서 표시된 컴포넌트들은 물리적 유닛이거나 아닐 수도 있으며, 한 장소에 위치하거나, 복수의 네트워크 유닛들에 분산될 수도 있다. 유닛들의 일부 또는 전부는 본 개시내용의 목적을 달성하기 위해 필요에 따라 선택될 수 있다.Units described as separate components may or may not be physically separated, and components marked as units may or may not be physical units, may be located in one location, or may be distributed over multiple network units. Some or all of the units may be selected as needed to achieve the objectives of the present disclosure.
또한, 본 개시내용에 따른 실시예들에서의 기능 유닛들은 하나의 처리 유닛에 통합되거나, 유닛들은 물리적으로 분리된 유닛일 수도 있고, 또는 2개 이상의 유닛들이 하나의 유닛으로 통합될 수도 있다. 상기 통합된 유닛은 하드웨어의 형태로 구현되거나, 소프트웨어 기능 유닛의 형태로 구현될 수도 있다.Further, functional units in embodiments according to the present disclosure may be integrated into one processing unit, or units may be physically separate units, or two or more units may be integrated into one unit. The integrated unit may be implemented in the form of hardware or a software functional unit.
통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로서 판매 또는 이용되는 경우, 통합된 유닛은 컴퓨터 판독가능한 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 개시내용의 기술적 솔루션의 본질, 또는 종래 기술에 기여하는 부분, 또는 기술적 솔루션의 전부 또는 일부는, 소프트웨어 제품의 형태로 구현될 수도 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, (개인용 컴퓨터, 서버, 웹 디바이스일 수 있는) 컴퓨터 디바이스에게 본 개시내용에 따른 실시예들에서 설명된 방법들의 단계들의 전부 또는 일부를 수행할 것을 지시하기 위한 수 개의 명령어들을 포함한다. 저장 매체는, USB 플래시 디스크, 착탈식 하드 디스크, ROM(read-only memory), RAM(random access memory), 디스켓 또는 광학 디스크 등의, 프로그램 코드를 저장할 수 있는 임의의 매체일 수 있다.When the integrated unit is implemented in the form of a software functional unit and sold or used as a standalone product, the integrated unit may be stored in a computer-readable storage medium. Based on this understanding, the essence of the technical solution of the present disclosure, or a part contributing to the prior art, or all or part of the technical solution, may be implemented in the form of a software product. The computer software product is stored on a storage medium and is intended to instruct a computer device (which may be a personal computer, server, web device) to perform all or part of the steps of the methods described in the embodiments according to the present disclosure. It contains several commands. The storage medium can be any medium that can store program code, such as a USB flash disk, removable hard disk, read-only memory (ROM), random access memory (RAM), diskette, or optical disk.
전술된 실시예들은 본 개시내용의 기술적 솔루션을 제한하는 것이 아니라 예시하기 위한 것일 뿐이다. 상기 상세한 설명이 상기 실시예들을 참조하여 이루어졌지만, 본 기술 분야의 통상의 기술자에 의해 본 개시내용의 기술적 솔루션 또는 일부 기술적 피쳐에 대한 수정 및 변경이 이루어질 수 있다. 임의의 이러한 모든 수정 또는 균등물은 본 개시내용의 실시예들의 기술적 솔루션의 사상 및 범위로부터 벗어나지 않는다.The above-described embodiments are only intended to illustrate, not limit, the technical solutions of the present disclosure. Although the above detailed description has been made with reference to the above embodiments, modifications and changes to the technical solutions or some technical features of the present disclosure may be made by those skilled in the art. Any such modifications or equivalents do not depart from the spirit and scope of the technical solutions of the embodiments of the present disclosure.
Claims (12)
상기 사용자 디바이스에 의해, 상기 서버에 의해 전송된 렌더링 데이터를 수신하는 단계 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
상기 사용자 디바이스에 의해, 상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계;
상기 렌더링 명령어에 따라 상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 단계; 및
상기 GPU 복구를 수행하기로 결정되면, 상기 사용자 디바이스에 의해, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 단계
를 포함하고,
상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
상기 렌더링 명령어에 따라 상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 결정하는 단계는,
상기 사용자 디바이스에 의해, 상기 렌더링 명령어를 재연(replay)하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하는 단계; 및
상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 상기 제1 반환 값에 기초하여 결정하는 단계
를 포함하는 방법.As a method for reconfiguring resources-the method is applied to a cloud interactive system, the cloud interactive system includes a user device and a server, the user device includes a graphics processing unit (GPU), and the GPU Corresponds to the default resource pool-,
Receiving, by the user device, rendering data sent by the server, wherein the rendering data includes a rendering command and rendering resources corresponding to the rendering command;
Recording, by the user device, GPU resources to be configured in the default resource pool according to the rendering resources as retained resources in the default resource pool;
Determining, by the user device according to the rendering instruction, whether the GPU is in a lost state and performing GPU recovery when the GPU is in a lost state; And
If it is decided to perform the GPU recovery, releasing resources held in the default resource pool by the user device and reconfiguring resources in the default resource pool based on a record of the resources held in the default resource pool.
Including,
The rendering instruction includes a first detection function for detecting the current state of the GPU;
Determining whether the GPU is in a lost state by the user device according to the rendering instruction is:
Replaying the rendering command by the user device, and obtaining a first return value returned by the first detection function; And
Determining, by the user device, whether the GPU is in a lost state based on the first return value.
How to include.
상기 GPU가 손실 상태라고 결정한 후에, 상기 방법은, 상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 상기 렌더링 명령어에 삽입하는 단계를 더 포함하고;
상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 결정하는 단계는,
상기 사용자 디바이스에 의해, 상기 렌더링 명령어를 재연하고, 상기 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 단계; 및
상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 상기 제2 반환 값에 기초하여 결정하는 단계
를 포함하는 방법.According to claim 1,
After determining that the GPU is in a lost state, the method further includes inserting, by the user device, a second detection function into the rendering command to detect whether to perform the GPU recovery;
The step of determining whether to perform the GPU recovery by the user device,
Replaying the rendering command by the user device, and obtaining a second return value returned by the second detection function; And
Determining, by the user device, whether to perform the GPU recovery based on the second return value.
How to include.
상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 상기 렌더링 명령어는 상기 타겟 GPU 자원들의 라이프 사이클 정보를 포함하고;
상기 방법은, 상기 사용자 디바이스에 의해, 상기 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 상기 타겟 GPU 자원들을 해제하고, 상기 타겟 GPU 자원들이 상기 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 단계를 더 포함하는 방법.According to claim 1,
GPU resources to be configured in the default resource pool according to the rendering resources include target GPU resources, and the rendering instruction includes life cycle information of the target GPU resources;
The method further comprises, by the user device, releasing the target GPU resources after the life cycle of the target GPU resources is over, and deleting the record that the target GPU resources are retained resources in the default resource pool. How to include.
상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성 한 후에, 상기 방법은, 상기 사용자 디바이스에 의해, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 상기 디폴트 자원 푸울 내의 상기 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 더 포함하는 방법.According to claim 1,
After reconfiguring the resources in the default resource pool based on a record of retained resources in the default resource pool, the method determines, by the user device, that all retained resources in the default resource pool have been successfully reconstructed. And if all the retained resources in the default resource pool are not successfully reconstructed, release the retained resources in the default resource pool, and the default resource pool based on a record of retained resources in the default resource pool. Further comprising reconfiguring the resources within.
상기 서버에 의해 전송된 렌더링 데이터를 수신하도록 구성된 수신 유닛 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
상기 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된 기록 유닛;
상기 렌더링 명령어에 따라 상기 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된 결정 유닛; 및
상기 GPU 복구를 수행하기로 결정되면, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된 재구성 유닛
을 포함하고,
상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
상기 결정 유닛은, 상기 렌더링 명령어를 재연하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 상기 제1 반환 값에 기초하여 상기 GPU가 손실 상태인지를 결정하도록 구성되는 사용자 디바이스.As a user device-the user device is included in a cloud interactive system, the cloud interactive system further comprises a server, the user device includes a graphics processing unit (GPU), and the GPU corresponds to a default resource pool -,
A receiving unit, configured to receive rendering data transmitted by the server, wherein the rendering data includes a rendering instruction and rendering resources corresponding to the rendering instruction;
A recording unit configured to record GPU resources to be configured in a default resource pool according to the rendering resources as retained resources in the default resource pool;
A determining unit, configured to determine whether the GPU is in a lost state according to the rendering instruction, and determine whether to perform GPU recovery when the GPU is in a lost state; And
If it is decided to perform the GPU recovery, a reconfiguration unit configured to release resources retained in the default resource pool and reconstruct resources in the default resource pool based on a record of the resources retained in the default resource pool.
Including,
The rendering instruction includes a first detection function for detecting the current state of the GPU;
The determining unit is configured to reproduce the rendering command, obtain a first return value returned by the first detection function, and based on the first return value, the user device is configured to determine whether the GPU is in a lost state .
상기 GPU가 손실 상태라고 결정된 후에, 상기 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 상기 렌더링 명령어에 삽입하도록 구성된 삽입 유닛을 더 포함하고;
상기 결정 유닛은, 상기 렌더링 명령어를 재연하고, 상기 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하고, 상기 제2 반환 값에 기초하여 상기 GPU 복구를 수행할지를 결정하도록 추가로 구성되는 사용자 디바이스.The method of claim 5,
After the GPU is determined to be in a lost state, further comprising an insertion unit configured to insert a second detection function into the rendering instruction to detect whether to perform the GPU recovery;
The determining unit is further configured to replay the rendering command, obtain a second return value returned by the second detection function, and determine whether to perform the GPU recovery based on the second return value device.
상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 상기 렌더링 명령어는 상기 타겟 GPU 자원들의 라이프 사이클 정보를 포함하고;
상기 사용자 디바이스는, 상기 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 상기 타겟 GPU 자원들을 해제하고, 상기 타겟 GPU 자원들이 상기 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하도록 구성된 삭제 유닛을 더 포함하는 사용자 디바이스.The method of claim 5,
GPU resources to be configured in the default resource pool according to the rendering resources include target GPU resources, and the rendering instruction includes life cycle information of the target GPU resources;
The user device further comprises a deletion unit configured to release the target GPU resources after the life cycle of the target GPU resources is over, and to delete the record that the target GPU resources are retained resources in the default resource pool. device.
상기 재구성 유닛은,
상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성한 후, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고;
상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 상기 디폴트 자원 푸울 내의 상기 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하도록
추가로 구성되는 사용자 디바이스.The method of claim 5,
The reconstruction unit,
After reconfiguring resources in the default resource pool based on a record of retained resources in the default resource pool, determining whether all retained resources in the default resource pool have been successfully reconstructed;
Resources in the default resource pool based on a record of retained resources in the default resource pool, when all retained resources in the default resource pool are not successfully reconfigured To reconstruct them
User device further configured.
사용자 디바이스 및 서버를 포함하고,
상기 사용자 디바이스는 제5항 내지 제8항 중 어느 한 항에 따른 사용자 디바이스인 클라우드 대화형 시스템.As a cloud interactive system,
Including user devices and servers,
The user device is a cloud interactive system that is a user device according to any one of claims 5 to 8.
상기 컴퓨터 프로그램은 하나 이상의 메모리를 이용하여 프로세서에 의해 수행되는 명령어를 포함하고,
상기 명령어는, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
서버에 의해 전송된 렌더링 데이터를 수신하는 동작 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
상기 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 동작;
상기 렌더링 명령어에 따라 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 동작; 및
상기 GPU 복구를 수행하기로 결정되면, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 동작을 실행하게 하고,
상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
상기 GPU가 손실 상태인지를 결정하는 동작은,
상기 렌더링 명령어를 재연하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하는 동작; 및
상기 GPU가 손실 상태인지를 상기 제1 반환 값에 기초하여 결정하는 동작
을 포함하는 비휘발성 저장 매체.
A non-volatile storage medium storing one or more computer programs,
The computer program includes instructions performed by a processor using one or more memories,
The instructions, when executed by a computer, cause the computer to:
Receiving rendering data transmitted by a server, wherein the rendering data includes a rendering command and rendering resources corresponding to the rendering command;
Recording GPU resources to be configured in a default resource pool according to the rendering resources as retained resources in the default resource pool;
Determining whether a GPU is in a lost state according to the rendering instruction and determining whether to perform GPU recovery when the GPU is in a lost state; And
If it is decided to perform the GPU recovery, release the retained resources in the default resource pool, and perform an operation of reconfiguring the resources in the default resource pool based on a record of retained resources in the default resource pool,
The rendering instruction includes a first detection function for detecting the current state of the GPU;
The operation of determining whether the GPU is in a lost state,
Replaying the rendering command, and obtaining a first return value returned by the first detection function; And
Determining whether the GPU is in a lost state based on the first return value
Non-volatile storage medium comprising a.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610067210.1A CN105740061B (en) | 2016-01-29 | 2016-01-29 | A kind of method, user equipment and system that GPU resource is rebuild |
CN201610067210.1 | 2016-01-29 | ||
PCT/CN2017/072537 WO2017129117A1 (en) | 2016-01-29 | 2017-01-25 | Gpu resource reconstruction method, user device, system, and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180100626A KR20180100626A (en) | 2018-09-11 |
KR102091961B1 true KR102091961B1 (en) | 2020-03-20 |
Family
ID=56247261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187022500A KR102091961B1 (en) | 2016-01-29 | 2017-01-25 | GPU resource reconstruction method, user device, system and storage medium |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6715334B2 (en) |
KR (1) | KR102091961B1 (en) |
CN (1) | CN105740061B (en) |
WO (1) | WO2017129117A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740061B (en) * | 2016-01-29 | 2019-05-31 | 腾讯科技(深圳)有限公司 | A kind of method, user equipment and system that GPU resource is rebuild |
CN110648272B (en) * | 2019-08-21 | 2023-10-03 | 北京达佳互联信息技术有限公司 | Graphics resource conversion method and device, electronic equipment and storage medium |
CN110502399B (en) * | 2019-08-23 | 2023-09-01 | 广东浪潮大数据研究有限公司 | Fault detection method and device |
CN111680015B (en) | 2020-05-29 | 2023-08-11 | 北京百度网讯科技有限公司 | File resource processing method, device, equipment and medium |
CN113347432B (en) * | 2021-05-27 | 2023-03-28 | 深圳万兴软件有限公司 | Video encoding and decoding method and device, computer equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100618159B1 (en) * | 2004-08-05 | 2006-08-29 | 한국정보통신대학교 산학협력단 | System and method for policy quorum grid resource management |
US20070262995A1 (en) | 2006-05-12 | 2007-11-15 | Available For Licensing | Systems and methods for video editing |
KR100960164B1 (en) | 2006-08-01 | 2010-05-26 | 엔비디아 코포레이션 | Multi-graphics processor system and method for processing content communicated over a network for display purposes |
KR101609483B1 (en) | 2011-07-27 | 2016-04-20 | 퀄컴 인코포레이티드 | Web browsing enhanced by cloud computing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555245C (en) * | 2007-01-10 | 2009-10-28 | 中兴通讯股份有限公司 | Resource storage method and device |
US8803892B2 (en) * | 2010-06-10 | 2014-08-12 | Otoy, Inc. | Allocation of GPU resources across multiple clients |
CN102866919B (en) * | 2012-07-31 | 2014-11-05 | 电子科技大学 | Cloud drawing-based large-sized three-dimensional scene multi-person collaborative creation method |
CN103595828A (en) * | 2012-08-13 | 2014-02-19 | 南京杰诺瀚软件科技有限公司 | An apparatus and a method for expending functions of a handset and a tablet computer |
US20140221087A1 (en) * | 2012-11-28 | 2014-08-07 | Nvidia Corporation | Handheld gaming console |
CN103095828B (en) * | 2013-01-14 | 2016-03-30 | 上海电力学院 | The Web3D synchronous conferencing system played up based on cloud and realize synchronous method |
KR20150054484A (en) * | 2013-11-12 | 2015-05-20 | 주식회사 시큐아이 | Computing apparatus for running web application and method for measuring response time thereof |
CN105740061B (en) * | 2016-01-29 | 2019-05-31 | 腾讯科技(深圳)有限公司 | A kind of method, user equipment and system that GPU resource is rebuild |
-
2016
- 2016-01-29 CN CN201610067210.1A patent/CN105740061B/en active Active
-
2017
- 2017-01-25 WO PCT/CN2017/072537 patent/WO2017129117A1/en active Application Filing
- 2017-01-25 JP JP2018538859A patent/JP6715334B2/en active Active
- 2017-01-25 KR KR1020187022500A patent/KR102091961B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100618159B1 (en) * | 2004-08-05 | 2006-08-29 | 한국정보통신대학교 산학협력단 | System and method for policy quorum grid resource management |
US20070262995A1 (en) | 2006-05-12 | 2007-11-15 | Available For Licensing | Systems and methods for video editing |
KR100960164B1 (en) | 2006-08-01 | 2010-05-26 | 엔비디아 코포레이션 | Multi-graphics processor system and method for processing content communicated over a network for display purposes |
KR101609483B1 (en) | 2011-07-27 | 2016-04-20 | 퀄컴 인코포레이티드 | Web browsing enhanced by cloud computing |
Also Published As
Publication number | Publication date |
---|---|
JP6715334B2 (en) | 2020-07-01 |
JP2019509547A (en) | 2019-04-04 |
CN105740061B (en) | 2019-05-31 |
CN105740061A (en) | 2016-07-06 |
WO2017129117A1 (en) | 2017-08-03 |
KR20180100626A (en) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102091961B1 (en) | GPU resource reconstruction method, user device, system and storage medium | |
US9164798B2 (en) | Method, apparatus and computer for loading resource file for game engine | |
CN108647151A (en) | It is a kind of to dodge system metadata rule method, apparatus, equipment and storage medium entirely | |
US10278001B2 (en) | Multiple listener cloud render with enhanced instant replay | |
CN112473144A (en) | Game resource data processing method and device | |
JP2019532394A (en) | Method and apparatus for expanding virtual disk | |
CN101542480A (en) | Combination journaling/non-journaling file system | |
KR20220125198A (en) | Data additional writing method, apparatus, electronic device, storage medium and computer programs | |
CN107301021B (en) | Method and device for accelerating LUN (logical Unit number) by utilizing SSD (solid State disk) cache | |
CN113608695A (en) | Data processing method, system, device and medium | |
CN103995772A (en) | RAID card log completely-storing method based on LINUX operation system | |
CN116719484A (en) | Method, device, equipment and medium for processing write data of disk array | |
CN114501134B (en) | iOS cross-page video playing method, device, equipment and storage medium | |
CN113923472B (en) | Video content analysis method, device, electronic equipment and storage medium | |
CN103677979A (en) | Interactive method and device for application software and plugin | |
TW201445429A (en) | Disk array system and data processing method | |
CN108416830B (en) | Animation display control method, device, equipment and storage medium | |
US11481142B2 (en) | Method and device for downloading resources | |
CN111142787A (en) | Storage-layered data exchange testing method, system, terminal and storage medium | |
US20210132833A1 (en) | System and method for implementing heterogeneous media types with raid | |
CN106940626B (en) | Method and system for acquiring difference data among multiple disks of virtual machine | |
CN115934999A (en) | Video stream data storage method, device and medium based on block file | |
CN109298903B (en) | Method, computing device and storage medium for seamless picture preview | |
CN114880604A (en) | Data processing method, data sending method, data acquiring method, data processing device, data sending device and data acquiring device | |
CN114253752A (en) | Application crash processing method, device, equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |