Patents by Inventor Ian R. Ollmann
Ian R. Ollmann has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20240061650Abstract: Techniques are disclosed relating to polynomial approximation of the base-2 logarithm. In some embodiments, floating-point circuitry is configured to perform an approximation of a base-2 logarithm operation and provide a fixed unit of least precision (ULP) error over a range of inputs. In some embodiments, the floating-point circuitry includes a set of parallel pipelines for polynomial approximation, where the output is chosen from a particular pipeline based on a determination of whether the input operand is in a first subset of a range of inputs. Disclosed techniques may advantageously provide fixed ULP error for an entire input operand range for the floating-point base-2 logarithmic function with minimal area and energy footprint, relative to traditional techniques.Type: ApplicationFiled: August 18, 2022Publication date: February 22, 2024Inventors: Liang-Kai Wang, Ian R. Ollmann, Anthony Y. Tai
-
Publication number: 20240053960Abstract: Techniques are disclosed relating to circuitry for floating-point division. In some embodiments, the circuitry is configured to generate a subnormal result for a division operation that divides a numerator by a denominator. The circuitry may include floating-point circuitry configured to perform a reciprocal operation to determine a normalized mantissa value for the reciprocal of a floating-point representation of the denominator. The circuitry may further include fixed-point circuitry configured to multiply a fixed-point representation of the normalized mantissa value for the reciprocal by a mantissa of the numerator to generate an initial value. Control circuitry may determine error data for the initial value and generate a final subnormal mantissa result for the division operation based on the error data and the initial value. Embodiments with multiple modes with different accuracy guarantees are disclosed.Type: ApplicationFiled: October 18, 2023Publication date: February 15, 2024Inventors: Liang-Kai Wang, Ian R. Ollmann, Anthony Y. Tai
-
Patent number: 11836459Abstract: Techniques are disclosed relating to circuitry for floating-point division. In some embodiments, the circuitry is configured to generate a subnormal result for a division operation that divides a numerator by a denominator. The circuitry may include floating-point circuitry configured to perform a reciprocal operation to determine a normalized mantissa value for the reciprocal of a floating-point representation of the denominator. The circuitry may further include fixed-point circuitry configured to multiply a fixed-point representation of the normalized mantissa value for the reciprocal by a mantissa of the numerator to generate an initial value. Control circuitry may determine error data for the initial value and generate a final subnormal mantissa result for the division operation based on the error data and the initial value. Embodiments with multiple modes with different accuracy guarantees are disclosed.Type: GrantFiled: March 30, 2021Date of Patent: December 5, 2023Assignee: Apple Inc.Inventors: Liang-Kai Wang, Ian R. Ollmann, Anthony Y. Tai
-
Publication number: 20220317971Abstract: Techniques are disclosed relating to circuitry for floating-point division. In some embodiments, the circuitry is configured to generate a subnormal result for a division operation that divides a numerator by a denominator. The circuitry may include floating-point circuitry configured to perform a reciprocal operation to determine a normalized mantissa value for the reciprocal of a floating-point representation of the denominator. The circuitry may further include fixed-point circuitry configured to multiply a fixed-point representation of the normalized mantissa value for the reciprocal by a mantissa of the numerator to generate an initial value. Control circuitry may determine error data for the initial value and generate a final subnormal mantissa result for the division operation based on the error data and the initial value. Embodiments with multiple modes with different accuracy guarantees are disclosed.Type: ApplicationFiled: March 30, 2021Publication date: October 6, 2022Inventors: Liang-Kai Wang, Ian R. Ollmann, Anthony Y. Tai
-
Patent number: 11372621Abstract: Techniques are disclosed relating to floating-point circuitry configured to perform a corner check instruction for a floating-point power operation. In some embodiments, the power operation is performed by executing multiple instructions, including one or more instructions specify to generate an initial power result of a first input raised to the power of a second input as 2(second input*log2(first input)). In some embodiments, the corner check instruction operates on the first and second inputs and outputs output a corrected power result based on detection of a corner condition for the first and second inputs. Corner check circuitry may share circuits with other datapaths. In various embodiments, the disclosed techniques may reduce code size and power consumption for the power operation.Type: GrantFiled: June 4, 2020Date of Patent: June 28, 2022Assignee: Apple Inc.Inventors: Anthony Y. Tai, Liang-Kai Wang, Ian R. Ollmann, Anand Poovekurussi
-
Publication number: 20210382687Abstract: Techniques are disclosed relating to floating-point circuitry configured to perform a corner check instruction for a floating-point power operation. In some embodiments, the power operation is performed by executing multiple instructions, including one or more instructions specify to generate an initial power result of a first input raised to the power of a second input as 2(second input*log2(first input)). In some embodiments, the corner check instruction operates on the first and second inputs and outputs output a corrected power result based on detection of a corner condition for the first and second inputs. Corner check circuitry may share circuits with other datapaths. In various embodiments, the disclosed techniques may reduce code size and power consumption for the power operation.Type: ApplicationFiled: June 4, 2020Publication date: December 9, 2021Inventors: Anthony Y. Tai, Liang-Kai Wang, Ian R. Ollmann, Anand Poovekurussi
-
Patent number: 9691346Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: GrantFiled: December 18, 2014Date of Patent: June 27, 2017Assignee: Apple Inc.Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Publication number: 20150187322Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: ApplicationFiled: December 18, 2014Publication date: July 2, 2015Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Patent number: 8957906Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: GrantFiled: April 16, 2014Date of Patent: February 17, 2015Assignee: Apple Inc.Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Publication number: 20140313214Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: ApplicationFiled: April 16, 2014Publication date: October 23, 2014Applicant: Apple Inc.Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Patent number: 8745111Abstract: A method and an apparatus that determine an addend in a first floating point format from a first representation of a number in the first floating point format are described. An arithmetic processing unit may be instructed to perform a floating point add operation to generate a sum in the first floating point format from the addend and the first representation. A second representation of the number in a second floating point format may be extracted directly from the sum. The first floating point format and the second floating point format may be based on different precisions for the first and second representation of the number.Type: GrantFiled: November 16, 2010Date of Patent: June 3, 2014Assignee: Apple Inc.Inventor: Ian R. Ollmann
-
Patent number: 8723877Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: GrantFiled: September 28, 2010Date of Patent: May 13, 2014Assignee: Apple Inc.Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Publication number: 20120124115Abstract: A method and an apparatus that determine an addend in a first floating point format from a first representation of a number in the first floating point format are described. An arithmetic processing unit may be instructed to perform a floating point add operation to generate a sum in the first floating point format from the addend and the first representation. A second representation of the number in a second floating point format may be extracted directly from the sum. The first floating point format and the second floating point format may be based on different precisions for the first and second representation of the number.Type: ApplicationFiled: November 16, 2010Publication date: May 17, 2012Inventor: Ian R. Ollmann
-
Publication number: 20110285729Abstract: A method and an apparatus for a parallel computing program using subbuffers to perform a data processing task in parallel among heterogeneous compute units are described. The compute units can include a heterogeneous mix of central processing units (CPUs) and graphic processing units (GPUs). A system creates a subbuffer from a parent buffer for each of a plurality of heterogeneous compute units. If a subbuffer is not associated with the same compute unit as the parent buffer, the system copies data from the subbuffer to memory of that compute unit. The system further tracks updates to the data and transfers those updates back to the subbuffer.Type: ApplicationFiled: September 28, 2010Publication date: November 24, 2011Inventors: Aaftab A. Munshi, Ian R. Ollmann
-
Patent number: 7836408Abstract: Methods and apparatus for providing a scroll bar including a plurality of locations corresponding to a plurality of locations in a file are disclosed. One or more location criteria that are obtained are used to identify one or more desired locations in the file. One or more display criteria to be applied to designate the one or more desired locations are identified. In addition, one or more desired locations in the file are located according to the location criteria. The scroll bar is then displayed by applying the display criteria to one or more locations of the scroll bar corresponding to the desired locations in the file.Type: GrantFiled: April 14, 2004Date of Patent: November 16, 2010Assignee: Apple Inc.Inventors: Ian R. Ollmann, Nathan T. Slingerland, Sanjay K. Patel
-
Publication number: 20100267946Abstract: The present invention provides prodrugs of GABA analogs, pharmaceutical compositions of prodrugs of GABA analogs and methods for making prodrugs of GABA analogs. The present invention also provides methods for using prodrugs of GABA analogs and methods for using pharmaceutical compositions of prodrugs of GABA analogs for treating or preventing common diseases and/or disorders.Type: ApplicationFiled: July 1, 2010Publication date: October 21, 2010Applicant: XenoPort, Inc.Inventors: Mark A. Gallop, Kenneth C. Cundy, Cindy X. Zhou, Fayang G. Qiu, Fenmei Yao, Jia-Ning Xiang, Ian R. Ollmann
-
Patent number: 7790708Abstract: The present invention provides prodrugs of GABA analogs, pharmaceutical compositions of prodrugs of GABA analogs and methods for making prodrugs of GABA analogs. The present invention also provides methods for using prodrugs of GABA analogs and methods for using pharmaceutical compositions of prodrugs of GABA analogs for treating or preventing common diseases and/or disorders.Type: GrantFiled: May 22, 2006Date of Patent: September 7, 2010Assignee: XenoPort, Inc.Inventors: Mark A. Gallop, Kenneth C. Cundy, Cindy X. Zhou, Fayang G. Qiu, Fenmei Yao, Jia-Ning Xiang, Ian R. Ollmann
-
Patent number: 7768531Abstract: A method and system to rotate a 2N by 2N array are described. Consistent with one embodiment of the present invention, the 2N elements of the 2N rows of a 2N by 2N array are loaded from memory into the vector registers of a processor's single instruction multiple data (SIMD) unit. Next, the elements of the rows in the top half of the array are interleaved with corresponding elements from a corresponding row in the bottom half of the array. The loading and interleaving operations are repeated N times before the results, stored in the vector registers, are written back to memory.Type: GrantFiled: March 30, 2009Date of Patent: August 3, 2010Assignee: Apple Inc.Inventor: Ian R. Ollmann
-
Publication number: 20090189918Abstract: A method and system to rotate a 2N by 2N array are described. Consistent with one embodiment of the present invention, the 2N elements of the 2N rows of a 2N by 2N array are loaded from memory into the vector registers of a processor's single instruction multiple data (SIMD) unit. Next, the elements of the rows in the top half of the array are interleaved with corresponding elements from a corresponding row in the bottom half of the array. The loading and interleaving operations are repeated N times before the results, stored in the vector registers, are written back to memory.Type: ApplicationFiled: March 30, 2009Publication date: July 30, 2009Inventor: Ian R. Ollmann
-
Patent number: 7511722Abstract: A method and system to rotate a 2N by 2N array are described. Consistent with one embodiment of the present invention, the 2N elements of the 2N rows of a 2N by 2N array are loaded from memory into the vector registers of a processor's single instruction multiple data (SIMD) unit. Next, the elements of the rows in the top half of the array are interleaved with corresponding elements from a corresponding row in the bottom half of the array. The loading and interleaving operations are repeated N times before the results, stored in the vector registers, are written back to memory.Type: GrantFiled: August 27, 2004Date of Patent: March 31, 2009Assignee: Apple Inc.Inventor: Ian R. Ollmann