KR102091961B1 - Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 - Google Patents

Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 Download PDF

Info

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
Application number
KR1020187022500A
Other languages
English (en)
Other versions
KR20180100626A (ko
Inventor
샹 한
둥저 청
쉐창 왕
진펑 예
차오 선
즈밍 녜
충빙 리
펑 아이
위 구
양쥔 왕
원성 차오
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
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 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20180100626A publication Critical patent/KR20180100626A/ko
Application granted granted Critical
Publication of KR102091961B1 publication Critical patent/KR102091961B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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)

Abstract

본 출원의 실시예들에서는 자원 재구성 방법, 사용자 디바이스, 및 시스템이 개시되며, 이 방법은: 클라우드 대화형 시스템에서 이용되고, 클라우드 대화형 시스템은 사용자 디바이스 및 서버를 포함하며, 사용자 디바이스는 GPU를 포함하고, GPU는 대응하는 디폴트 자원 푸울을 가지며, 본 출원의 실시예들에서의 방법은: 사용자 디바이스가 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하는 단계; 렌더링 자원들에 의해 디폴트 자원 푸울에서 생성될 것이 요구되는 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계; 렌더링 명령어에 기초하여, 사용자 디바이스가 GPU가 손실 상태인지를 결정하고, 만일 그렇다면 GPU 복구를 구현할지를 결정하는 단계; GPU 복구를 구현하기로 결정하면, 사용자 디바이스가 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 기록된 자원들에 기초하여, 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 포함한다. 본 출원의 실시예들은 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시킨다.

Description

GPU 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체
본 출원은, 그 전체내용이 참조로 본 명세서에 포함되는 2016년 1월 29일 중국 특허청에 출원된 발명의 명칭이 "GPU RESOURCE RECONSTRUCTION METHOD, USER DEVICE AND SYSTEM"인 중국 특허 출원 제201610067210.1호의 우선권을 주장한다.
기술분야
본 개시내용은 클라우드 기술의 기술 분야에 관한 것으로, 특히 자원들을 재구성하기 위한 방법, 사용자 디바이스 및 시스템에 관한 것이다.
최근, 단말기 기술 및 네트워크 대역폭의 급속한 발전에 따라, 클라우드 컴퓨팅 기술의 성숙도의 증가는 클라우드 대화형 시스템을 촉진하고 있다. 기존의 클라우드 대화형 시스템은 대개 서버와 복수의 사용자 디바이스를 포함하며, 여기서, 서버는 클러스터 서버일 수 있고 복수의 대화형 애플리케이션이 대화형 시스템에서 실행될 수 있다.
현재, 기존 기술의 클라우드 대화형 시스템에서 이미지 렌더링 응용과 관련하여, 이미지를 렌더링하고 렌더링된 이미지 프레임을 사용자 디바이스에 전송하는 것은 서버의 책임이며, 사용자 디바이스는 렌더링된 이미지 프레임을 수신한 후 이미지 프레임을 직접 디코딩하고 이미지를 디스플레이한다. 클라우드 대화형 시스템에서, GPU 자원들의 이용 상태는 이미지를 디스플레이하는 사용자 디바이스에 직접 기록되지 않으며, 이것은 GPU가 손실된 후 GPU를 재구성하는 경우에 GPU 자원들을 해제하고 재구성하지 못하게 한다.
본 개시내용의 실시예들에서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시키는, 자원들을 재구성하기 위한 방법, 사용자 디바이스, 시스템 및 저장 매체가 제공된다.
본 개시내용의 제1 양태는 자원들을 재구성하기 위한 방법을 제공하는 것이다. 이 방법은 클라우드 대화형 시스템에 적용된다. 클라우드 대화형 시스템은 사용자 디바이스와 서버를 포함한다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.
이 방법은: 사용자 디바이스에 의해, 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하는 단계; 사용자 디바이스에 의해, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계; 렌더링 명령어에 따라 사용자 디바이스에 의해, GPU가 손실 상태인지를 결정하고, GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 단계; 및 GPU 복구를 수행하기로 결정되면, 사용자 디바이스에 의해, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 포함한다.
본 개시내용의 제2 양태는 사용자 디바이스를 제공하는 것이다. 사용자 디바이스는 클라우드 대화형 시스템에 포함된다. 클라우드 대화형 시스템은 서버를 더 포함한다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.
사용자 디바이스는: 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하도록 구성된 수신 유닛; 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된 기록 유닛; 렌더링 명령어에 따라 GPU가 손실 상태인지를 결정하고, GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된 결정 유닛; 및 GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된 재구성 유닛을 포함한다.
본 개시내용의 제3 양태는, 사용자 디바이스 및 서버를 포함하는, 클라우드 대화형 시스템을 제공하는 것이다. 사용자 디바이스는 제2 양태에 따른 사용자 디바이스이다.
본 개시내용의 제4 양태는 컴퓨터를 위한 판독가능한 명령어들을 저장하는 비휘발성 저장 매체를 제공하는 것이다. 명령어들이 컴퓨터에 의해 실행될 때, 컴퓨터는 전술된 바와 같은 자원들을 재구성하는 방법을 실행한다.
도 1은 클라우드 게임 아키텍쳐의 개략도이다;
도 2는 본 개시내용의 한 실시예에 따른 GPU 자원들을 재구성하기 위한 방법의 개략도이다;
도 3은 본 개시내용의 한 실시예에 따른 GPU 자원들을 재구성하기 위한 방법에서의 클라우드 게임 아키텍쳐의 특정한 개략도이다;
도 4는 본 개시내용의 또 다른 실시예에 따른 GPU 자원들을 재구성하기 위한 방법의 개략도이다;
도 5는 본 개시내용의 한 실시예에 따른 사용자 디바이스의 개략도이다;
도 6은 본 개시내용의 또 다른 실시예에 따른 사용자 디바이스의 개략도이다.
본 개시내용의 실시예들에서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시키는, 자원들을 재구성하기 위한 방법, 사용자 디바이스, 시스템 및 저장 매체가 제공된다.
본 개시내용의 실시예들에 따른 기술적 솔루션들은, 본 기술분야의 통상의 기술자가 본 개시내용에 따른 기술적 솔루션들을 더 잘 이해할 수 있게 하도록, 본 개시내용에 따른 도면들과 연계하여 이하에서 명확하고 완전하게 설명된다. 명백하게, 설명된 실시예들은 본 개시내용의 모든 실시예가 아닌 일부일 뿐이다. 어떠한 창조적 노력 없이 본 개시내용의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 획득되는 임의의 다른 실시예들은 본 개시내용의 보호 범위에 속한다.
본 개시내용의 전술된 명세서, 청구항들, 및 도면들에서 (있는 경우) "제1", "제2" 등의 용어는 유사한 객체들의 특정한 순서 또는 우선순위를 나타내기 위한 것이 아니라 단지 유사한 객체들을 구분하기 위해 여기서 사용될 뿐이다. 본 명세서에 사용된 용어들은, 본 개시내용의 실시예들이 여기서 나타낸 것들과는 다른 순서로 구현될 수 있도록, 서로 바꾸어 사용될 수 있다는 것을 이해해야 한다. 또한, "포함하는", "포함하는" 또는 임의의 다른 변형의 용어는 비배타적인 것으로 의도된다. 예를 들어, 일련의 단계들 또는 유닛들을 포함하는 프로세스, 방법, 시스템, 항목 또는 디바이스는, 명확하게 열거된 단계들 또는 유닛들로 제한되지 않고, 명확하게 열거되지 않거나 프로세스, 방법, 또는 항목 또는 디바이스에 고유한 다른 단계들 또는 유닛들을 더 포함할 수 있다.
본 개시내용에서 자원들을 재구성하기 위한 방법의 실시예들이 이하에서 먼저 소개된다.
도 1에 도시된 바와 같이, 본 개시내용의 한 실시예에서의 자원들을 재구성하는 방법은 클라우드 대화형 시스템에 적용된다. 클라우드 대화형 시스템은 사용자 디바이스와 서버를 포함한다. 복수의 사용자 디바이스가 있을 수 있다. 서버는 클러스터 서버일 수 있다. 복수의 대화형 애플리케이션은 클라우드 대화형 시스템에서 실행될 수 있다. 사용자 디바이스는, 개인용 컴퓨터(PC), 랩탑 또는 모바일 전화 등의 단말 디바이스일 수 있다. 서버는 전용 게임 서버일 수 있다. 현재, 데이터 흐름은 서버에 의해 기록되고 압축된 후에 사용자 디바이스에 전송된다. 사용자 디바이스는 렌더링 명령어를 재연(replay)하고, 렌더링 자원들을 재생(play)하며, 렌더링 이미지를 재현(reproduce)할 수 있다. 사용자 디바이스는 그래픽 처리 유닛인 GPU를 포함한다.
Direct3D는 Microsoft Corporation에 의해 Windows 운영 체제용으로 개발된 3차원(3D) 그래픽 프로그래밍 인터페이스로서, Windows 상의 3D 게임 및 GPU의 프로그래밍 인터페이스의 개발을 위한 기본 라이브러리이다.
Direct3D에서 관리되는 GPU 자원들은 저장 위치에 따라 3개의 유형으로 분류된다: 관리대상 자원 푸울 내의 자원들(관리대상 자원들), 디폴트 자원 푸울 내의 자원들(디폴트 자원들), 및 시스템 메모리 자원 푸울 내의 자원들(시스템 메모리 자원들). 관리대상 자원 푸울 내의 자원들과 시스템 메모리 자원 푸울 내의 자원들은 GPU 손실에 의해 영향을 받지 않고 GPU 손실의 경우 처리될 필요가 없는 반면, 디폴트 자원 푸울 내의 자원들은 GPU 손실 후 디바이스가 복구 중임이 검출될 때 해제되고 재구성될 필요가 있다.
사용자 디바이스는 본 개시내용의 실시예에서 디폴트 자원 푸울에 대응한다. 사용자 디바이스는, 스마트폰 또는 태블릿 컴퓨터 등의 스마트 단말기, 또는 MP3(Moving Picture Experts Group Audio Layer III) 재생기, MP4(Moving Picture Experts Group Audio Layer IV) 재생기, 랩탑 컴퓨터, 차량용 오디오 디바이스, 데스크탑 컴퓨터 등일 수 있다.
도 2를 참조하면, 본 개시내용의 한 실시예에서의 자원들을 재구성하기 위한 방법은 단계 201 내지 단계 205를 포함한다.
단계 201에서, 사용자 디바이스는 서버에 의해 전송된 렌더링 데이터를 수신한다.
렌더링 데이터는, 렌더링 명령어, 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다. 데이터 흐름은 서버에 의해 기록되고 압축된 후 사용자 디바이스에 전송된다. 사용자 디바이스는 서버에 의해 전송된 렌더링 데이터를 수신한다.
단계 202에서, 사용자 디바이스는, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록한다.
사용자 디바이스는 렌더링 자원들을 재생할 때 디폴트 자원 푸울 내의 대응하는 GPU 자원들을 구성할 필요가 있다. 이 단계에서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들이 이미 디폴트 자원 푸울 내의 보유된 자원들로서 기록된 경우, 이들은 다시 보유 자원들로서 기록되지 않는다는 점에 유의해야 한다.
단계 203에서, 사용자 디바이스는 GPU가 손실 상태인지를 결정한다. 단계 204는 GPU가 손실 상태인 경우 실행된다.
GPU(Graphics Processing Unit; 그래픽 처리 유닛)는 그래픽 연산을 수행하는 마이크로프로세서이다. Direct3D 기반 게임이 GPU를 이용하고 있을 때 GPU의 이용 권한이 박탈될 수 있고, 이것은 유효한 렌더링의 실패로 이어지며, 애플리케이션에 의해 보유된 GPU 자원들도 역시 해제된다. 이 프로세스를 GPU 손실이라고 한다. GPU 손실과 연관된 또 다른 상태는, 애플리케이션이 GPU의 이용 권한을 재할당받는 GPU 복구이다. GPU가 손실될 때 애플리케이션은 렌더링을 사실상 계속할 수 없고, 디바이스가 복원되면, 이전에 보유된 GPU 자원들은 해제되고 재구성된다.
실시예에서, 렌더링 명령어는 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함할 수 있다. 이 경우, 사용자 디바이스가 GPU가 손실 상태인지를 결정하는 단계는 다음을 포함한다: 사용자 디바이스는 렌더링 명령어를 재연하고 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 사용자 디바이스는 제1 반환 값에 기초하여 GPU가 손실 상태인지를 결정한다.
제1 검출 함수는 렌더링 명령어에 포함되는 Present 함수일 수 있다. GPU 손실의 경우 Present 함수는 D3DERR_DEVICELOST를 반환한다. 반환 값이 이 시점에서 획득되면, GPU가 손실되었는지가 결정될 수 있다.
단계 204에서, 사용자 디바이스는 GPU 복구를 수행할지를 결정한다. GPU 복구를 수행하기로 결정된다면 단계 205가 실행된다.
이 실시예에서, GPU가 손실 상태라고 결정한 후에, 이 방법은, 사용자 디바이스가 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 렌더링 명령어에 삽입하는 것을 더 포함할 수 있다. 이 경우, 사용자 디바이스가 GPU 복구를 수행할지를 결정하는 단계는, 사용자 디바이스가 렌더링 명령어를 재연하고 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 것을 포함할 수 있으며, 사용자 디바이스는 제2 반환 값에 기초하여 GPU 복구를 수행할지를 결정한다.
제2 검출 함수는 TestCooperativeLevel 함수일 수 있다. TestCooperativeLevel 함수의 반환 값이 D3DERR_DEVICENOTRESET으로서 획득되면, GPU 복구를 수행하기로 결정된다.
이 실시예에서, TestCooperativeLevel 함수는 또한, 단계 203에서 GPU 손실 상태인지를 결정하는데 이용될 수 있다. TestCooperativeLevel 함수의 반환 값이 D3DERR_DEVICELOST를 포함한다면, 획득된 반환 값에 기초하여 GPU가 손실되었는지가 결정될 수 있다.
단계 205에서, 사용자 디바이스는 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한다.
일반적으로, 사용자 디바이스 내의 애플리케이션이 GPU(Graphics Processing Unit)를 이용할 때, GPU의 이용 권한이 박탈될 수 있고, 애플리케이션에 의해 보유된 GPU 자원들도 역시 해제되는데, 이것을 GPU 손실이라 부른다. GPU 손실과 연관된 또 다른 상태는, 애플리케이션이 GPU의 이용 권한을 재할당받는 GPU 복구이다. 디바이스가 복원되면, 이전에 보유된 GPU 자원들은 해제되고 재구성된다.
이것은, GPU 손실의 경우 GPU는 그래픽 카드와의 연락을 잃어, 그래픽 카드에 관련된 모든 자원들이 디바이스에 의해 다시 액세스될 수 없으므로 이들 자원들은 해제되고 재구성되어야 하기 때문이다. 일반적으로, 파라미터 D3DPOOL_DEFAULT(디폴트 자원 푸울)로 구성된 자원들은 그래픽 카드에 할당된 모든 메모리 자원들이다. 따라서, 디바이스를 리셋하기 전에, D3DPOOL_DEFAULT(디폴트 자원 푸울) 유형의 모든 자원들이 해제되는 것이 보장되어야 한다.
따라서, GPU 복구를 수행하기로 결정할 때, 사용자 디바이스는 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성할 필요가 있다. 이 실시예에서, 디바이스 손실 및 복구를 처리하기 위한 리셋 기능이 사용자 디바이스에 의해 이용되어 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성할 수 있다.
본 개시내용의 실시예들에서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은, 서버에 의해 전송된 렌더링 데이터를 수신한 후에 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. GPU가 손실된 후 GPU 복구에서, 디폴트 자원 푸울 내의 보유된 자원들은 해제되고 디폴트 자원 푸울 내의 자원들은 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 재구성됨으로써 GPU 복구를 실현하고, 모든 데이터는 서버로부터만 획득될 수 있다는 사실 때문에 GPU 손실 후에 GPU가 복구될 수 없는 대화형 애플리케이션 시스템에서의 상황을 피할 수 있어서, 시스템의 정상적인 이용을 보장하고 사용자 경험을 향상시킨다.
선택사항으로서, 본 개시내용의 실시예들에서, 렌더링 명령어에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 렌더링 명령어는 타겟 GPU 자원들의 라이프 사이클 정보를 포함한다. 이 방법은, 사용자 디바이스가 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 타겟 GPU 자원들을 해제하고, 타겟 GPU 자원들이 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 것을 더 포함한다. 즉, 디폴트 자원 푸울 내의 보유된 GPU 자원들은 자원들의 라이프 사이클이 끝난 후에 해제되고, 자원들이 디폴트 자원 푸울 내에 보유되어 있다는 기록이 삭제되며, 이것은 자원들의 더 효율적인 이용을 달성하고 디폴트 자원 푸울 내의 보유된 자원들을 재구성할 때 불필요한 자원들 재구성을 피한다.
선택사항으로서, 본 개시내용의 실시예들에서, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한 후에, 이 방법은, 사용자 디바이스가 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 것을 더 포함한다.
일부 특별한 경우에, 디폴트 자원 푸울 내의 보유된 자원들이 모두 성공적으로 재구성된 것은 아닌 경우가 발생할 수 있으며, 이 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 재구성하는 단계가 재실행될 수 있어서, 디폴트 자원 푸울 내의 보유된 자원들이 성공적으로 재구성되는 것을 보장한다.
이하, 자원들을 구성하기 위한 상기 방법이, 사용자 디바이스 상에서 실행되는 클라우드 게임 클라이언트가 사용자 디바이스의 한 예로서 취해지는 특정한 애플리케이션 시나리오를 이용하여 설명된다. 도 3을 참조하면, 게임이 클라우드 게임 서버 상에서 실행된다. 데이터 흐름은 클라우드 게임 서버에 의해 기록되고 압축된 후에 인터넷을 통해 클라우드 게임 클라이언트에 전송된다. 클라우드 게임 클라이언트는 렌더링 명령어를 재연하고, 렌더링 데이터를 재생하며, 렌더링 이미지를 재현한다. 이 실시예에서, 클라우드 게임 클라이언트에 Direct3D 상태 기록기가 제공되어 클라우드 게임 서버로부터 수신된 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 기록한다.
도 4를 참조하면, 본 개시내용의 또 다른 실시예에서의 자원들을 재구성하기 위한 방법은 단계 401 내지 단계 406을 포함한다.
단계 401에서, 클라우드 게임 클라이언트는 클라우드 게임 서버에 의해 전송된 렌더링 데이터를 수신한다.
렌더링 데이터는, 렌더링 명령어, 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다.
단계 402에서, 클라우드 게임 클라이언트는, Direct3D 상태 기록기에 의해, 렌더링 자원들에 따라 디폴트 자원들에서 구성될 GPU 자원들을 디폴트 자원들 내의 보유된 자원들로서 기록한다.
렌더링 명령어는 Present 함수를 포함한다.
단계 403에서, TestCooperativeLevel 함수가 렌더링 명령어에 삽입된다.
TestCooperativeLevel 함수는 GPU 복구를 수행할지를 검출하는데 이용된다.
단계 404에서, 클라우드 게임 클라이언트는 GPU가 손실 상태인지를 결정하기 위해 렌더링 명령어를 재연한다. 단계 405는 GPU가 손실 상태인 경우 실행된다.
클라우드 게임 클라이언트가 렌더링 명령어를 재연하여 GPU가 손실 상태인지를 결정하는 단계는, 클라우드 게임 클라이언트가 렌더링 명령어를 재연하고, Present 함수의 반환 값에 기초하여, GPU가 손실 상태인지를 결정하는 것을 포함할 수 있다. Present 함수는 GPU가 손실 상태인 경우 D3DERR_DEVICELOST를 반환하고 GPU가 손실되었는지는 반환 값이 획득될 때 결정될 수 있다.
단계 405에서, 클라우드 게임 클라이언트는 GPU 복구를 수행할지를 결정한다.
TestCooperativeLevel 함수로부터 획득된 반환 값이 D3DERR_DEVICENOTRESET이면 GPU 복구를 수행하기로 결정된다.
GPU 복구를 수행하기로 결정되면, 단계 406에서, 클라우드 게임 클라이언트가 디폴트 자원들 내의 보유된 자원들을 해제하고, 디폴트 자원들 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한다.
사용자 디바이스의 한 실시예는 다음과 같이 설명된다. 사용자 디바이스는 클라우드 대화형 시스템에 포함된다. 클라우드 대화형 시스템은 또한 서버를 포함한다. 서버는 그래픽 처리 유닛인 GPU를 포함한다. GPU는 디폴트 자원 푸울에 대응한다.
도 5를 참조하면, 본 개시내용의 한 실시예의 사용자 디바이스(500)는, 수신 유닛(501), 기록 유닛(502), 결정 유닛(503), 및 재구성 유닛(504)을 포함한다.
수신 유닛(501)은 서버에 의해 전송된 렌더링 데이터를 수신하도록 구성되고, 여기서, 렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함한다.
기록 유닛(502)은, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된다.
결정 유닛(503)은, GPU가 손실 상태인지를 결정하고 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된다.
GPU 복구를 수행하기로 결정되면, 재구성 유닛(504)은 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된다.
본 개시내용의 실시예에서, 렌더링 자원들에 따라 디폴트 자원 푸울에 구성될 GPU 자원들은, 서버에 의해 전송된 렌더링 데이터를 수신 유닛(501)에 의해 수신한 후에 기록 유닛(502)에 의해 디폴트 자원 푸울 내의 보유된 자원들로서 기록된다. GPU가 손실된 후 결정 유닛(503)에 의해 GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들은 해제되고, 디폴트 자원 푸울 내의 자원들은 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 재구성 유닛(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)의 수는 하나 이상일 수 있고, 도 6에는 하나의 프로세서(603)가 예로서 도시되어 있다). 사용자 디바이스는 GPU(605)를 더 포함한다. GPU(605)는 디폴트 자원 푸울에 대응한다. 본 개시내용의 일부 실시예에서, 입력 디바이스(601), 출력 디바이스(602), 프로세서(603), 메모리(604) 및 GPU(605)는 버스 또는 기타의 수단에 의해 접속될 수 있다. 도 6에서는 버스 접속이 예로서 도시되어 있다.
본 개시내용의 실시예에 포함된 사용자 디바이스는 도 6에 도시된 것보다 더 많거나 더 적은 부분들을 포함하거나, 2개 이상의 컴포넌트를 결합하거나, 또는 상이한 부분 구성 또는 설정을 가질 수 있다. 각각의 컴포넌트는, 하나 이상의 신호 처리 및/또는 주문형 집적 회로를 포함한 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다.
메모리(604)에 저장된 동작 명령어를 호출함으로써, 프로세서(603)는, 입력 유닛(601)을 통해, 서버에 의해 전송된 렌더링 데이터 ―렌더링 데이터는 렌더링 명령어 및 렌더링 명령어에 대응하는 렌더링 자원들을 포함함― 를 수신하고; 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계들을 실행하는데 이용된다.
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, GPU가 손실 상태인지를 결정하고, GPU가 손실 상태라면 GPU 복구를 수행할지를 결정하고, GPU 복구를 수행하기로 결정되면, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계들을 실행하는데 이용된다.
선택사항으로서, 렌더링 명령어는 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함한다. 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 렌더링 명령어를 재연하고, 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 제1 반환 값에 기초하여 GPU가 손실되었는지를 결정하는 단계를 실행하는데 이용된다.
선택사항으로서, 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는 또한, GPU가 손실 상태라고 결정한 후에, GPU 복구를 수행할지를 결정하기 위한 제2 검출 함수를 렌더링 명령어에 삽입하는 단계를 실행하는데 이용된다.
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 렌더링 명령어를 재연하고, 제2 반환 값에 기초하여 GPU 복구를 수행할지를 결정하는 단계들을 실행하는데 이용된다.
선택사항으로서, 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 렌더링 명령어는 타겟 GPU 자원들의 라이프 사이클 정보를 포함한다.
메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는, 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 타겟 GPU 자원들을 해제하고, 타겟 GPU 자원들이 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 단계들을 실행하는데 이용된다.
선택사항으로서, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성한 후, 메모리(604)에 저장된 동작 명령어를 호출함으로써, GPU(605)는 또한, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 디폴트 자원 푸울 내의 자원들을 재구성하는 단계들을 실행하는데 이용된다.
이 실시예에서, 메모리(604)는 소프트웨어 프로그램 및 모듈을 저장하는데 이용될 수 있고, 프로세서(603)는 메모리(604)에 저장된 소프트웨어 프로그램 및 모듈을 실행함으로써 다양한 기능 애플리케이션 및 데이터 처리를 수행한다.
메모리(604)는 주로, 프로그램 저장 영역 및 데이터 저장 영역을 포함할 수 있다. 프로그램 저장 영역은, 운영 체제, 적어도 하나의 기능에 의해 요구되는 애플리케이션 등을 저장할 수 있다. 데이터 저장 영역은, (미러링된 컨테이너 데이터 등의) 서버의 이용에 따라 생성된 데이터 등을 저장할 수 있다. 또한, 메모리(604)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한, 적어도 하나의 자기 디스크 디바이스 및 플래시 메모리 디바이스 등의 비휘발성 메모리, 또는 다른 휘발성 솔리드-스테이트 저장 디바이스를 포함할 수 있다.
프로세서(603)는 신호 처리 능력을 갖춘 집적 회로 칩일 수 있다. 헌 구현에서, 상기 방법의 각각의 단계는 프로세서(603)에서 통합된 논리 회로 또는 소프트웨어의 형태의 명령어를 통해 완료될 수 있다.
프로세서(603)는, 공개 애플리케이션의 방법, 단계 및 논리 블록도를 구현하거나 실행할 수 있는, 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 디바이스, 개별 게이트 또는 트랜지스터 로직 디바이스, 및 개별 하드웨어 컴포넌트일 수 있다. 일반적인 프로세서는 마이크로프로세서 또는 임의의 종래 프로세서일 수 있다.
본 개시내용의 실시예들에 개시된 방법의 단계들은 하드웨어 디코드 프로세서에 의해 직접 실행되거나, 디코딩 프로세서에서 하드웨어 및 소프트웨어 모듈의 조합에 의해 실행될 수 있다. 소프트웨어 모듈은, 랜덤 액세스 메모리, 플래시 메모리, 판독 전용 메모리, 프로그래머블 판독 전용 메모리, 전기적으로 소거가능한 프로그래머블 메모리, 또는 레지스터 등의 본 기술분야의 성숙된 저장 매체에 위치할 수도 있다. 저장 매체는 메모리(604)에 위치한다. 프로세서(604)는 메모리(604) 내의 정보를 판독하고, 그 하드웨어와 함께 상기 방법 단계들을 완료한다.
본 개시내용의 실시예에서는 컴퓨터 저장 매체도 제공되며, 컴퓨터 저장 매체는 프로그램을 저장한다. 프로그램은 상기 방법 실시예들에서 자원들을 재구성하기 위한 방법의 일부 또는 모든 단계를 포함한다.
설명의 편의 및 간소화를 위해, 전술된 실시예들에서, 각각의 실시예에 대한 설명은 특정한 강조를 가진다는 것이 본 기술분야의 통상의 기술자에게는 명백하다. 한 실시예에서 상세히 설명되지 않은 설명에 대해서는, 다른 실시예의 관련 설명을 참조할 수 있다.
상기 방법 실시예는 간결성을 위해 일련의 동작들의 조합으로서 설명되었다는 점에 유의해야 한다. 본 기술분야의 통상의 기술자라면, 개시된 동작 순서로 제한되지 않고 일부 단계들은 다른 순서로 또는 본 개시내용에 따라 동시에 수행될 수 있다는 것을 알아야 한다. 또한, 본 기술분야의 통상의 기술자라면, 본 명세서에서 설명된 실시예들은 모두 바람직한 실시예이고, 수반된 동작들 및 모듈들이 반드시 필요한 것은 아님을 알아야 한다.
본 개시내용의 실시예들에 따른 시스템, 디바이스 및 방법은 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 전술된 장치 실시예들은 단지 예시적인 것이다. 예를 들어, 유닛들의 분할은 단지 논리적인 기능 분할이고 실제적인 구현에서는 다른 분할이 있을 수 있다. 예를 들어, 일부 유닛들 또는 컴포넌트들은 서로 결합되거나 또 다른 시스템에 통합될 수 있고, 또는 일부 피쳐들은 무시되거나 구현되지 않을 수도 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 접속은, 일부 인터페이스, 디바이스 또는 유닛들을 통한 간접 결합 또는 통신 접속일 수 있으며, 전기적, 기계적 또는 기타의 형태일 수 있다.
별개의 컴포넌트들로서 설명된 유닛들은 물리적으로 분리되거나 분리되지 않을 수도 있고, 유닛들로서 표시된 컴포넌트들은 물리적 유닛이거나 아닐 수도 있으며, 한 장소에 위치하거나, 복수의 네트워크 유닛들에 분산될 수도 있다. 유닛들의 일부 또는 전부는 본 개시내용의 목적을 달성하기 위해 필요에 따라 선택될 수 있다.
또한, 본 개시내용에 따른 실시예들에서의 기능 유닛들은 하나의 처리 유닛에 통합되거나, 유닛들은 물리적으로 분리된 유닛일 수도 있고, 또는 2개 이상의 유닛들이 하나의 유닛으로 통합될 수도 있다. 상기 통합된 유닛은 하드웨어의 형태로 구현되거나, 소프트웨어 기능 유닛의 형태로 구현될 수도 있다.
통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로서 판매 또는 이용되는 경우, 통합된 유닛은 컴퓨터 판독가능한 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 개시내용의 기술적 솔루션의 본질, 또는 종래 기술에 기여하는 부분, 또는 기술적 솔루션의 전부 또는 일부는, 소프트웨어 제품의 형태로 구현될 수도 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, (개인용 컴퓨터, 서버, 웹 디바이스일 수 있는) 컴퓨터 디바이스에게 본 개시내용에 따른 실시예들에서 설명된 방법들의 단계들의 전부 또는 일부를 수행할 것을 지시하기 위한 수 개의 명령어들을 포함한다. 저장 매체는, USB 플래시 디스크, 착탈식 하드 디스크, ROM(read-only memory), RAM(random access memory), 디스켓 또는 광학 디스크 등의, 프로그램 코드를 저장할 수 있는 임의의 매체일 수 있다.
전술된 실시예들은 본 개시내용의 기술적 솔루션을 제한하는 것이 아니라 예시하기 위한 것일 뿐이다. 상기 상세한 설명이 상기 실시예들을 참조하여 이루어졌지만, 본 기술 분야의 통상의 기술자에 의해 본 개시내용의 기술적 솔루션 또는 일부 기술적 피쳐에 대한 수정 및 변경이 이루어질 수 있다. 임의의 이러한 모든 수정 또는 균등물은 본 개시내용의 실시예들의 기술적 솔루션의 사상 및 범위로부터 벗어나지 않는다.

Claims (12)

  1. 자원들을 재구성하기 위한 방법으로서 - 상기 방법은 클라우드 대화형 시스템에 적용되고, 상기 클라우드 대화형 시스템은 사용자 디바이스 및 서버를 포함하고, 상기 사용자 디바이스는 그래픽 처리 유닛(GPU)을 포함하고, 상기 GPU는 디폴트 자원 푸울에 대응함 -,
    상기 사용자 디바이스에 의해, 상기 서버에 의해 전송된 렌더링 데이터를 수신하는 단계 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
    상기 사용자 디바이스에 의해, 상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 단계;
    상기 렌더링 명령어에 따라 상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 단계; 및
    상기 GPU 복구를 수행하기로 결정되면, 상기 사용자 디바이스에 의해, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 단계
    를 포함하고,
    상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
    상기 렌더링 명령어에 따라 상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 결정하는 단계는,
    상기 사용자 디바이스에 의해, 상기 렌더링 명령어를 재연(replay)하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하는 단계; 및
    상기 사용자 디바이스에 의해, 상기 GPU가 손실 상태인지를 상기 제1 반환 값에 기초하여 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 GPU가 손실 상태라고 결정한 후에, 상기 방법은, 상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 상기 렌더링 명령어에 삽입하는 단계를 더 포함하고;
    상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 결정하는 단계는,
    상기 사용자 디바이스에 의해, 상기 렌더링 명령어를 재연하고, 상기 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하는 단계; 및
    상기 사용자 디바이스에 의해, 상기 GPU 복구를 수행할지를 상기 제2 반환 값에 기초하여 결정하는 단계
    를 포함하는 방법.
  3. 제1항에 있어서,
    상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 상기 렌더링 명령어는 상기 타겟 GPU 자원들의 라이프 사이클 정보를 포함하고;
    상기 방법은, 상기 사용자 디바이스에 의해, 상기 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 상기 타겟 GPU 자원들을 해제하고, 상기 타겟 GPU 자원들이 상기 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성 한 후에, 상기 방법은, 상기 사용자 디바이스에 의해, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 상기 디폴트 자원 푸울 내의 상기 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 단계를 더 포함하는 방법.
  5. 사용자 디바이스로서 - 상기 사용자 디바이스는 클라우드 대화형 시스템에 포함되고, 상기 클라우드 대화형 시스템은 서버를 더 포함하고, 상기 사용자 디바이스는 그래픽 처리 유닛(GPU)을 포함하고, 상기 GPU는 디폴트 자원 푸울에 대응함 -,
    상기 서버에 의해 전송된 렌더링 데이터를 수신하도록 구성된 수신 유닛 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
    상기 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하도록 구성된 기록 유닛;
    상기 렌더링 명령어에 따라 상기 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하도록 구성된 결정 유닛; 및
    상기 GPU 복구를 수행하기로 결정되면, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하도록 구성된 재구성 유닛
    을 포함하고,
    상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
    상기 결정 유닛은, 상기 렌더링 명령어를 재연하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하고, 상기 제1 반환 값에 기초하여 상기 GPU가 손실 상태인지를 결정하도록 구성되는 사용자 디바이스.
  6. 제5항에 있어서,
    상기 GPU가 손실 상태라고 결정된 후에, 상기 GPU 복구를 수행할지를 검출하기 위한 제2 검출 함수를 상기 렌더링 명령어에 삽입하도록 구성된 삽입 유닛을 더 포함하고;
    상기 결정 유닛은, 상기 렌더링 명령어를 재연하고, 상기 제2 검출 함수에 의해 반환된 제2 반환 값을 획득하고, 상기 제2 반환 값에 기초하여 상기 GPU 복구를 수행할지를 결정하도록 추가로 구성되는 사용자 디바이스.
  7. 제5항에 있어서,
    상기 렌더링 자원들에 따라 상기 디폴트 자원 푸울에서 구성될 GPU 자원들은 타겟 GPU 자원들을 포함하고, 상기 렌더링 명령어는 상기 타겟 GPU 자원들의 라이프 사이클 정보를 포함하고;
    상기 사용자 디바이스는, 상기 타겟 GPU 자원들의 라이프 사이클이 끝난 후에 상기 타겟 GPU 자원들을 해제하고, 상기 타겟 GPU 자원들이 상기 디폴트 자원 푸울 내의 보유된 자원들이라는 기록을 삭제하도록 구성된 삭제 유닛을 더 포함하는 사용자 디바이스.
  8. 제5항에 있어서,
    상기 재구성 유닛은,
    상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성한 후, 상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성되었는지를 결정하고;
    상기 디폴트 자원 푸울 내의 모든 보유된 자원들이 성공적으로 재구성된 것은 아닌 경우, 상기 디폴트 자원 푸울 내의 상기 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하도록
    추가로 구성되는 사용자 디바이스.
  9. 클라우드 대화형 시스템으로서,
    사용자 디바이스 및 서버를 포함하고,
    상기 사용자 디바이스는 제5항 내지 제8항 중 어느 한 항에 따른 사용자 디바이스인 클라우드 대화형 시스템.
  10. 하나 이상의 컴퓨터 프로그램을 저장하는 비휘발성 저장 매체로서,
    상기 컴퓨터 프로그램은 하나 이상의 메모리를 이용하여 프로세서에 의해 수행되는 명령어를 포함하고,
    상기 명령어는, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    서버에 의해 전송된 렌더링 데이터를 수신하는 동작 - 상기 렌더링 데이터는 렌더링 명령어 및 상기 렌더링 명령어에 대응하는 렌더링 자원들을 포함함 -;
    상기 렌더링 자원들에 따라 디폴트 자원 푸울에서 구성될 GPU 자원들을 상기 디폴트 자원 푸울 내의 보유된 자원들로서 기록하는 동작;
    상기 렌더링 명령어에 따라 GPU가 손실 상태인지를 결정하고 상기 GPU가 손실 상태인 경우 GPU 복구를 수행할지를 결정하는 동작; 및
    상기 GPU 복구를 수행하기로 결정되면, 상기 디폴트 자원 푸울 내의 보유된 자원들을 해제하고, 상기 디폴트 자원 푸울 내의 보유된 자원들의 기록에 기초하여 상기 디폴트 자원 푸울 내의 자원들을 재구성하는 동작을 실행하게 하고,
    상기 렌더링 명령어는 상기 GPU의 현재 상태를 검출하기 위한 제1 검출 함수를 포함하고;
    상기 GPU가 손실 상태인지를 결정하는 동작은,
    상기 렌더링 명령어를 재연하고, 상기 제1 검출 함수에 의해 반환된 제1 반환 값을 획득하는 동작; 및
    상기 GPU가 손실 상태인지를 상기 제1 반환 값에 기초하여 결정하는 동작
    을 포함하는 비휘발성 저장 매체.
  11. 삭제
  12. 삭제
KR1020187022500A 2016-01-29 2017-01-25 Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체 KR102091961B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20180100626A KR20180100626A (ko) 2018-09-11
KR102091961B1 true KR102091961B1 (ko) 2020-03-20

Family

ID=56247261

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187022500A KR102091961B1 (ko) 2016-01-29 2017-01-25 Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체

Country Status (4)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740061B (zh) * 2016-01-29 2019-05-31 腾讯科技(深圳)有限公司 一种gpu资源重建的方法、用户设备及***
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 深圳万兴软件有限公司 一种视频编解码方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618159B1 (ko) * 2004-08-05 2006-08-29 한국정보통신대학교 산학협력단 정책 쿼럼 기반의 그리드 자원 관리 시스템 및 그 방법
US20070262995A1 (en) 2006-05-12 2007-11-15 Available For Licensing Systems and methods for video editing
KR100960164B1 (ko) 2006-08-01 2010-05-26 엔비디아 코포레이션 표시 목적으로 네트워크를 통해 통신되는 콘텐츠를처리하기 위한 멀티그래픽 프로세서 시스템 및 방법
KR101609483B1 (ko) 2011-07-27 2016-04-20 퀄컴 인코포레이티드 클라우드 컴퓨팅에 의해 향상된 웹 브라우징

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555245C (zh) * 2007-01-10 2009-10-28 中兴通讯股份有限公司 资源存储方法及装置
US8803892B2 (en) * 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
CN102866919B (zh) * 2012-07-31 2014-11-05 电子科技大学 一种基于云端绘制的大规模三维场景多人协同创作方法
CN103595828A (zh) * 2012-08-13 2014-02-19 南京杰诺瀚软件科技有限公司 一种扩展手机和平板电脑功能的装置和方法
US20150009222A1 (en) * 2012-11-28 2015-01-08 Nvidia Corporation Method and system for cloud based virtualized graphics processing for remote displays
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资源重建的方法、用户设备及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618159B1 (ko) * 2004-08-05 2006-08-29 한국정보통신대학교 산학협력단 정책 쿼럼 기반의 그리드 자원 관리 시스템 및 그 방법
US20070262995A1 (en) 2006-05-12 2007-11-15 Available For Licensing Systems and methods for video editing
KR100960164B1 (ko) 2006-08-01 2010-05-26 엔비디아 코포레이션 표시 목적으로 네트워크를 통해 통신되는 콘텐츠를처리하기 위한 멀티그래픽 프로세서 시스템 및 방법
KR101609483B1 (ko) 2011-07-27 2016-04-20 퀄컴 인코포레이티드 클라우드 컴퓨팅에 의해 향상된 웹 브라우징

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102091961B1 (ko) Gpu 자원 재구성 방법, 사용자 디바이스, 시스템 및 저장 매체
CN108647151A (zh) 一种全闪***元数据落盘方法、装置、设备及存储介质
CN109428913B (zh) 一种存储扩容方法及装置
US10278001B2 (en) Multiple listener cloud render with enhanced instant replay
CN110599396A (zh) 信息处理方法及装置
CN112473144A (zh) 游戏资源数据的处理方法及装置
CN101542480A (zh) 组合日志/非日志文件***
KR20220125198A (ko) 데이터의 추가 기록 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램매체
JP2019532394A (ja) 仮想ディスクの拡張方法及び機器
CN107301021B (zh) 一种利用ssd缓存对lun进行加速的方法和装置
CN113608695A (zh) 一种数据处理方法、***、设备以及介质
CN103995772A (zh) 一种基于linux操作***的raid卡日志完整保存的方法
CN116719484A (zh) 一种磁盘阵列的写数据处理方法、装置、设备和介质
CN114501134B (zh) 一种iOS跨页面视频播放方法、装置、设备及存储介质
CN113923472B (zh) 视频内容分析方法、装置、电子设备及存储介质
CN103677979A (zh) 应用软件和插件的交互方法及装置
TW201445429A (zh) 磁碟陣列系統及資料處理方法
US11275518B2 (en) System and method for implementing heterogeneous media types with raid
CN108416830B (zh) 动画显示控制方法、装置、设备及存储介质
US11481142B2 (en) Method and device for downloading resources
CN111142787A (zh) 存储分层的数据交换测试方法、***、终端及存储介质
CN106940626B (zh) 一种获取虚拟机多磁盘间差异数据的方法和***
CN115934999A (zh) 一种基于块文件的视频流数据存储方法、装置及介质
CN109298903B (zh) 用于无缝图片预览的方法、计算设备和存储介质
CN114253752A (zh) 一种应用程序崩溃处理方法、装置、设备及介质

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