发明名称 Estimating a cost of performing database operations using vectorized instructions
摘要 Techniques for performing database operations using vectorized instructions are provided. In one technique, it is determined whether to perform a database operation using one or more vectorized instructions or without using any vectorized instructions. This determination may comprise estimating a first cost of performing the database operation using one or more vectorized instructions and estimating a second cost of performing the database operation without using any vectorized instructions. Multiple factors that may be used to determine which approach to follow, such as the number of data elements that may fit into a SIMD register, a number of vectorized instructions in the vectorized approach, a number of data movement instructions that involve moving data from a SIMD register to a non-SIMD register and/or vice versa, a size of a cache, and a projected size of a hash table.
申请公布号 US9411842(B2) 申请公布日期 2016.08.09
申请号 US201313956357 申请日期 2013.08.01
申请人 Oracle International Corporation 发明人 Sen Rajkumar;Idicula Sam;Agarwal Nipun
分类号 G06F15/80;G06F17/30;G06F9/30 主分类号 G06F15/80
代理机构 Hickman Palermo Becker Bingham LLP 代理人 Hickman Palermo Becker Bingham LLP ;Ledesma Daniel D.
主权项 1. A method comprising: determining a first cost of performing an operation using a first approach that involves executing one or more vectorized instructions; wherein determining the first cost comprises: determining a particular number of instructions, wherein the particular number of instructions includes (a) a number of vectorized instructions that take, as input, output from a non-vectorized instruction or (b) a number of non-vectorized instructions that take, as input, output from a vectorized instruction;determining a cost of each data movement between a vectorized instruction and a non-vectorized instruction;determining a sub cost based on the cost of each data movement and the particular number; wherein the first cost is determined based on the sub cost; determining a second cost of performing the operation using a second approach that does not involve executing any vectorized instruction; based on the first cost and the second cost, determining whether to perform the operation using the first approach or the second approach; wherein the method is performed by one or more computing devices.
地址 Redwood Shores CA US