CN116382838A - gpu虚拟化实施方法 - Google Patents

gpu虚拟化实施方法 Download PDF

Info

Publication number
CN116382838A
CN116382838A CN202211674466.0A CN202211674466A CN116382838A CN 116382838 A CN116382838 A CN 116382838A CN 202211674466 A CN202211674466 A CN 202211674466A CN 116382838 A CN116382838 A CN 116382838A
Authority
CN
China
Prior art keywords
gpu
graphics
gvm
dvm
implementation method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211674466.0A
Other languages
English (en)
Inventor
李健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Blue Yun Polytron Technologies Inc
Original Assignee
Beijing Blue Yun Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Blue Yun Polytron Technologies Inc filed Critical Beijing Blue Yun Polytron Technologies Inc
Priority to CN202211674466.0A priority Critical patent/CN116382838A/zh
Publication of CN116382838A publication Critical patent/CN116382838A/zh
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)

Abstract

本发明涉及gpu虚拟化技术领域,且公开了gpu虚拟化实施方法,包括以下步骤:S1、首先以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器;S2、然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,S3、DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现。该gpu虚拟化实施方法,可支持3D图形处理任务,且对于虚拟桌面的3D图形处理能力较强,对于一些GPU显存要求较高的任务可以很好地执行,降低系统的虚拟GPU性能与物理GPU性能之间的差距,提供良好的3D图形加速功能支持,可根据需要对图像进行解压缩,增强图像质量,并实时刷新屏幕,进一步为用户提供良好的3D图形图像呈现效果。

Description

gpu虚拟化实施方法
技术领域
本发明涉及gpu虚拟化技术领域,具体为gpu虚拟化实施方法。
背景技术
当前计算系统常常包括中央处理单元(CPU)和图形处理器单元(GPU),其也可被称为视频处理单元(VPU),GPU是具有高度平行的结构且一般用于图形操作例如纹理映射和再现多变形的处理器,图形命令从CPU发送到GPU(经由GPU驱动器)并在GPU上被执行,计算机虚拟化是一种涉及将物理计算机器平台封装到在硬件计算平台或者“主机”上在虚拟化软件的控制下执行的虚拟机中的技术,虚拟机既具有虚拟系统硬件又具有客户操作系统软件。
计算机GPU虚拟桌面技术在传统应用处理、远程办公等业务方面具有独特优势,但是涉及到3D图形处理时,仍然面临着很大的挑战,首先,当前许多GPU虚拟桌面业务仅能够提供基本的2D图形处理业务,不支持3D图形处理任务;其次,GPU虚拟桌面的3D图形处理能力有限,对于一些GPU显存要求较高的任务还不能很好地执行,上述问题的关键在于系统的虚拟GPU性能与物理GPU性能具有一定差距,还不能提供良好的3D图形加速功能支持。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了gpu虚拟化实施方法,具备gpu虚拟化图形处理能力高等优点,解决了传统gpu虚拟化图形处理能力弱的问题。
(二)技术方案
为实现上述gpu虚拟化图形处理能力高的目的,本发明提供如下技术方案:gpu虚拟化实施方法,包括以下步骤:
S1、首先以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器;
S2、然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,
S3、DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现。
优选的,所述DVM与GVM之间共享数据和指令存储空间,降低由于数据复制和传输带来的时延。
优选的,所述设备显卡驱动采用专用显卡设备驱动,通过调用该驱动可以充分实现GPU的全部特性,包括调用GPU以实现高速的3D图形处理和数据运算。
优选的,所述DVM在功能上包括GPU驱动和渲染组件;其中,渲染组件包括捕获、压缩和渲染系统,通过GPU驱动,GVM可以被翻译成一个虚拟图形设备,GVM根据GPU的特性,对其进行调度管理。
优选的,所述调度管理括GPU通道管理、环境管理、内存管理,在GVM上会为每个DVM提供相应的图形捕捉、渲染和压缩功能,GVM根据收到的请求,将任务按照一定的顺序交由图形服务器的GPU控制器完成,而GVM上的图形渲染组件不断刷新桌面图像。
优选的,所述GVM在执行模式上可分为用户模式和内核模式;
所述用户模式,用户模式驱动器将3D应用的API图形命令转换为硬件操作命令,然后将这些命令存储到命令缓冲器中,缓冲器中的命令会按顺序提交至运行时系统,轮流调用内核模式驱动;
所述内核模式,由命令缓冲器的内容构建DMA缓冲区,GPU调度程序决定将DMA缓冲区内容发送至GPU以及采用何种顺序发送,当需要执行DMA缓冲区内容时,GPU调度程序会通过内核模式驱动器来处理所有被提交到物理GPU的指令。
优选的,所述内核模式驱动程序直接和显卡物理硬件驱动进行交互,通过对硬件设备进行编程,使其执行位于DMA缓冲区中的命令,当一个缓冲执行结束后,运行系统会收到通知,然后按照执行顺序,另外一个缓冲区域就会提交执行内容,通过这种循环的处理方式,视频和图像会得到处理并得以显示。
优选的,所述用户模式和内核模式下,物理GPU的图形处理功能包括3D图像和多媒体处理功能,可以被多个子虚拟机共享,多个虚拟机同时在物理机上的GPU进行3D渲染任务。
优选的,还包括系统运行处理过程,包括以下步骤:
终端用户发出3D图像渲染的请求,DVM中的3D应用程序将请求传输至GPU管理器;
A1、DVM通过共享内存区域将GPU调用指令发送至GVM;
A2、GVM接收到调用指令后,利用真实的GPU驱动获取GPU资源,进行3D图像渲染、压缩;
A3、结束后,通过共享内存区域将图像信息传递回DVM,DVM中的具体3D应用程序将结果通过RDP和PCOIP传输协议返回至客户端,并对3D图像进行处理。
(三)有益效果
与现有技术相比,本发明提供了gpu虚拟化实施方法,具备以下有益效果:
1、该gpu虚拟化实施方法,通过以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器,然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现,该方法可支持3D图形处理任务,且对于虚拟桌面的3D图形处理能力较强,对于一些GPU显存要求较高的任务可以很好地执行,降低系统的虚拟GPU性能与物理GPU性能之间的差距,提供良好的3D图形加速功能支持。
2、该gpu虚拟化实施方法,由DVM通过共享内存区域将GPU调用指令发送至GVM,GVM接收到调用指令后,利用真实的GPU驱动获取GPU资源,进行3D图像渲染、压缩,结束后,通过共享内存区域将图像信息传递回DVM,DVM中的具体3D应用程序将结果通过RDP和PCOIP传输协议返回至客户端,并对3D图像进行处理,客户端可根据需要对图像进行解压缩,增强图像质量,并实时刷新屏幕,进一步为用户提供良好的3D图形图像呈现效果。
附图说明
图1为本发明提出的gpu虚拟化实施方法中系统整体架构图;
图2为本发明提出的gpu虚拟化实施方法中虚拟化结构示意图;
图3为本发明提出的gpu虚拟化实施方法中GVM结构框图;
图4为本发明提出的gpu虚拟化实施方法中DVM结构框图;
图5为本发明提出的gpu虚拟化实施方法中系统运行示意图。
具体实施方式
下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-4,本实施例中的gpu虚拟化实施方法,包括以下步骤:
S1、首先以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器,设备独占使用法指不经虚拟机管理系统VMM,直接将GPU分配给一台虚拟机,只有该虚拟机拥有对GPU的访问权限;
S2、然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,
S3、DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现,DVM与GVM之间共享数据和指令存储空间,降低由于数据复制和传输带来的时延,设备显卡驱动采用专用显卡设备驱动,通过调用该驱动可以充分实现GPU的全部特性,包括调用GPU以实现高速的3D图形处理和数据运算。
在本实施中,可支持3D图形处理任务,且对于虚拟桌面的3D图形处理能力较强,对于一些GPU显存要求较高的任务可以很好地执行,降低系统的虚拟GPU性能与物理GPU性能之间的差距,提供良好的3D图形加速功能支持。
请参阅图4,本实施例中的DVM在功能上包括GPU驱动和渲染组件;其中,渲染组件包括捕获、压缩和渲染系统,通过GPU驱动,GVM可以被翻译成一个虚拟图形设备,GVM根据GPU的特性,对其进行调度管理,调度管理括GPU通道管理、环境管理、内存管理,在GVM上会为每个DVM提供相应的图形捕捉、渲染和压缩功能,GVM根据收到的请求,将任务按照一定的顺序交由图形服务器的GPU控制器完成,而GVM上的图形渲染组件不断刷新桌面图像。
请参阅图3,本实施例中的GVM在执行模式上可分为用户模式和内核模式。
用户模式,用户模式驱动器将3D应用的API图形命令转换为硬件操作命令,然后将这些命令存储到命令缓冲器中,缓冲器中的命令会按顺序提交至运行时系统,轮流调用内核模式驱动。
内核模式,由命令缓冲器的内容构建DMA缓冲区,GPU调度程序决定将DMA缓冲区内容发送至GPU以及采用何种顺序发送,当需要执行DMA缓冲区内容时,GPU调度程序会通过内核模式驱动器来处理所有被提交到物理GPU的指令。
且,内核模式驱动程序直接和显卡物理硬件驱动进行交互,通过对硬件设备进行编程,使其执行位于DMA缓冲区中的命令,当一个缓冲执行结束后,运行系统会收到通知,然后按照执行顺序,另外一个缓冲区域就会提交执行内容,通过这种循环的处理方式,视频和图像会得到处理并得以显示,用户模式和内核模式下,物理GPU的图形处理功能包括3D图像和多媒体处理功能,可以被多个子虚拟机共享,多个虚拟机同时在物理机上的GPU进行3D渲染任务。
另外,为了提升传输速度、降低时延,图像在传输至客户端之前可以首先由GVM进行压缩和编码,根据需要也可以在DVM上完成压缩和编码。
请参阅图5,本实施例中的gpu虚拟化实施方法,还包括系统运行处理过程,包括以下步骤:
终端用户发出3D图像渲染的请求,DVM中的3D应用程序将请求传输至GPU管理器;
A1、DVM通过共享内存区域将GPU调用指令发送至GVM;
A2、GVM接收到调用指令后,利用真实的GPU驱动获取GPU资源,进行3D图像渲染、压缩;
A3、结束后,通过共享内存区域将图像信息传递回DVM,DVM中的具体3D应用程序将结果通过RDP和PCOIP传输协议返回至客户端,并对3D图像进行处理。
在本实施中,客户端根据需要对图像进行解压缩,增强图像质量,并实时刷新屏幕,为用户提供良好的3D图形图像呈现效果。
本发明的有益效果是:通过以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器,然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现,该方法可支持3D图形处理任务,且对于虚拟桌面的3D图形处理能力较强,对于一些GPU显存要求较高的任务可以很好地执行,降低系统的虚拟GPU性能与物理GPU性能之间的差距,提供良好的3D图形加速功能支持。
并且,由DVM通过共享内存区域将GPU调用指令发送至GVM,GVM接收到调用指令后,利用真实的GPU驱动获取GPU资源,进行3D图像渲染、压缩,结束后,通过共享内存区域将图像信息传递回DVM,DVM中的具体3D应用程序将结果通过RDP和PCOIP传输协议返回至客户端,并对3D图像进行处理,客户端可根据需要对图像进行解压缩,增强图像质量,并实时刷新屏幕,进一步为用户提供良好的3D图形图像呈现效果,解决了当前许多虚拟桌面业务仅能够提供基本的2D图形处理业务,不支持3D图形处理任务;其次,虚拟桌面的3D图形处理能力有限,对于一些GPU显存要求较高的任务还不能很好地执行,上述问题的关键在于系统的虚拟GPU性能与物理GPU性能具有一定差距,还不能提供良好的3D图形加速功能支持的问题。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (9)

1.gpu虚拟化实施方法,其特征在于,包括以下步骤:
S1、首先以设备独占的方式创建一个父虚拟机,称为图形虚拟机GVM,以GVM作为其他虚拟机的图形服务器;
S2、然后利用Hypervisor继续创建多个子虚拟机,称为桌面虚拟机DVM,
S3、DVM通过远程桌面协议,包括RDP和PCOIP传输协议,将图像传输至远程客户端,为客户端提供所需的3D图形呈现。
2.根据权利要求1所述的gpu虚拟化实施方法,其特征在于,所述DVM与GVM之间共享数据和指令存储空间,降低由于数据复制和传输带来的时延。
3.根据权利要求1所述的gpu虚拟化实施方法,其特征在于,所述设备显卡驱动采用专用显卡设备驱动,通过调用该驱动可以充分实现GPU的全部特性,包括调用GPU以实现高速的3D图形处理和数据运算。
4.根据权利要求1所述的gpu虚拟化实施方法,其特征在于,所述DVM在功能上包括GPU驱动和渲染组件;
其中,渲染组件包括捕获、压缩和渲染系统,通过GPU驱动,GVM可以被翻译成一个虚拟图形设备,GVM根据GPU的特性,对其进行调度管理。
5.根据权利要求4所述的gpu虚拟化实施方法,其特征在于,所述调度管理括GPU通道管理、环境管理、内存管理,在GVM上会为每个DVM提供相应的图形捕捉、渲染和压缩功能,GVM根据收到的请求,将任务按照一定的顺序交由图形服务器的GPU控制器完成,而GVM上的图形渲染组件不断刷新桌面图像。
6.根据权利要求1所述的gpu虚拟化实施方法,其特征在于,所述GVM在执行模式上可分为用户模式和内核模式;
所述用户模式,用户模式驱动器将3D应用的API图形命令转换为硬件操作命令,然后将这些命令存储到命令缓冲器中,缓冲器中的命令会按顺序提交至运行时系统,轮流调用内核模式驱动;
所述内核模式,由命令缓冲器的内容构建DMA缓冲区,GPU调度程序决定将DMA缓冲区内容发送至GPU以及采用何种顺序发送,当需要执行DMA缓冲区内容时,GPU调度程序会通过内核模式驱动器来处理所有被提交到物理GPU的指令。
7.根据权利要求6所述的gpu虚拟化实施方法,其特征在于,所述内核模式驱动程序直接和显卡物理硬件驱动进行交互,通过对硬件设备进行编程,使其执行位于DMA缓冲区中的命令,当一个缓冲执行结束后,运行系统会收到通知,然后按照执行顺序,另外一个缓冲区域就会提交执行内容,通过这种循环的处理方式,视频和图像会得到处理并得以显示。
8.根据权利要求6所述的gpu虚拟化实施方法,其特征在于,所述用户模式和内核模式下,物理GPU的图形处理功能包括3D图像和多媒体处理功能,可以被多个子虚拟机共享,多个虚拟机同时在物理机上的GPU进行3D渲染任务。
9.根据权利要求1所述的gpu虚拟化实施方法,其特征在于,还包括系统运行处理过程,包括以下步骤:
终端用户发出3D图像渲染的请求,DVM中的3D应用程序将请求传输至GPU管理器;
A1、DVM通过共享内存区域将GPU调用指令发送至GVM;
A2、GVM接收到调用指令后,利用真实的GPU驱动获取GPU资源,进行3D图像渲染、压缩;
A3、结束后,通过共享内存区域将图像信息传递回DVM,DVM中的具体3D应用程序将结果通过RDP和PCOIP传输协议返回至客户端,并对3D图像进行处理。
CN202211674466.0A 2022-12-26 2022-12-26 gpu虚拟化实施方法 Pending CN116382838A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211674466.0A CN116382838A (zh) 2022-12-26 2022-12-26 gpu虚拟化实施方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211674466.0A CN116382838A (zh) 2022-12-26 2022-12-26 gpu虚拟化实施方法

Publications (1)

Publication Number Publication Date
CN116382838A true CN116382838A (zh) 2023-07-04

Family

ID=86971859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211674466.0A Pending CN116382838A (zh) 2022-12-26 2022-12-26 gpu虚拟化实施方法

Country Status (1)

Country Link
CN (1) CN116382838A (zh)

Similar Documents

Publication Publication Date Title
US20170323418A1 (en) Virtualized gpu in a virtual machine environment
CN112486609B (zh) 一种基于云桌面的虚拟显卡实现方法和装置
US9189261B2 (en) Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine
US8463980B2 (en) Shared memory between child and parent partitions
US10002403B2 (en) Command remoting
US8467631B2 (en) Method and apparatus for identification of image uniqueness
US8872835B2 (en) Prevention of DoS attack by a rogue graphics application
US9235452B2 (en) Graphics remoting using augmentation data
JP2008526107A (ja) リモートコンピューティングにおけるグラフィクスプロセッサの使用
US9542715B2 (en) Memory space mapping techniques for server based graphics processing
CN108762934B (zh) 远程图形传输系统、方法及云服务器
US9805439B2 (en) Memory space mapping techniques for server based graphics processing
CN113730922B (zh) 图形渲染方法、装置、电子设备及存储介质
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
US20120113103A1 (en) Apparatus and method for executing 3d application program using remote rendering
CN114968152B (zh) 减少virtio-gpu额外性能损耗的方法
WO2009108353A1 (en) 3d graphics acceleration in remote multi-user environment
US10929079B2 (en) Video display method, electronic device and computer program product
US10733689B2 (en) Data processing
US20140285497A1 (en) Systems and methods for processing desktop graphics for remote display
CN113379588A (zh) 容器应用的渲染系统
US20140156736A1 (en) Apparatus and method for managing threads to perform divided execution of software
CN115794294A (zh) vhost-user-gpu虚拟机的远程桌面实现方法及系统
CN116382838A (zh) gpu虚拟化实施方法
US9183663B1 (en) System for and method of classifying and translating graphics commands in client-server computing systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination