-
公开(公告)号:US10546044B2
公开(公告)日:2020-01-28
申请号:US16035516
申请日:2018-07-13
Applicant: Apple Inc.
Inventor: Lars M. Lindberg , Ali Sazegari , Paul S. Chang
Abstract: This application relates to an optimization for a technique for filtering an input signal according to a convolution kernel that is stored in a floating point format. A method for filtering the input signal includes: receiving a set of filter coefficients that define the convolution kernel; determining an order for a plurality of floating point operations configured to generate an element of an output signal; and filtering the input signal by the convolution kernel to generate the output signal. Each floating point operation corresponds with a particular filter coefficient, and the order for the plurality of floating point operations is determined based on a magnitude of the particular filter coefficient associated with each floating point operation. The filtering is performed by executing the plurality of floating point operations according to the order. The data path can be a half-precision floating point data path implemented on a processor.
-
公开(公告)号:US20190294541A1
公开(公告)日:2019-09-26
申请号:US16436635
申请日:2019-06-10
Applicant: Apple Inc.
Inventor: Ali Sazegari , Charles E. Tucker , Jeffry E. Gonion , Gerard R. Williams, III , Chris Cheng-Chieh Lee
IPC: G06F12/08 , H03M7/30 , G06F12/0886
Abstract: Systems, apparatuses, and methods for efficiently moving data for storage and processing are described. In various embodiments, a compression unit within a processor includes multiple hardware lanes, selects two or more input words to compress, and for assigns them to two or more of the multiple hardware lanes. As each assigned input word is processed, each word is compared to an entry of a plurality of entries of a table. If it is determined that each of the assigned input words indexes the same entry of the table, the hardware lane with the oldest input word generates a single read request for the table entry and the hardware lane with the youngest input word generates a single write request for updating the table entry upon completing compression. Each hardware lane generates a compressed packet based on its assigned input word.
-
公开(公告)号:US20190294441A1
公开(公告)日:2019-09-26
申请号:US16423702
申请日:2019-05-28
Applicant: Apple Inc.
Inventor: Eric Bainville , Tal Uliel , Erik Norden , Jeffry E. Gonion , Ali Sazegari
Abstract: In an embodiment, a matrix computation engine is configured to perform matrix computations (e.g. matrix multiplications). The matrix computation engine may perform numerous matrix computations in parallel, in an embodiment. More particularly, the matrix computation engine may be configured to perform numerous multiplication operations in parallel on input matrix elements, generating resulting matrix elements. In an embodiment, the matrix computation engine may be configured to accumulate results in a result memory, performing multiply-accumulate operations for each matrix element of each matrix.
-
公开(公告)号:US20190129719A1
公开(公告)日:2019-05-02
申请号:US15800342
申请日:2017-11-01
Applicant: Apple Inc.
Inventor: Eric Bainville , Tal Uliel , Erik Norden , Jeffry E. Gonion , Ali Sazegari
CPC classification number: G06F9/30014 , G06F9/30036 , G06F9/30043 , G06F9/30109 , G06F9/3887 , G06F17/16
Abstract: In an embodiment, a matrix computation engine is configured to perform matrix computations (e.g. matrix multiplications). The matrix computation engine may perform numerous matrix computations in parallel, in an embodiment. More particularly, the matrix computation engine may be configured to perform numerous multiplication operations in parallel on input matrix elements, generating resulting matrix elements. In an embodiment, the matrix computation engine may be configured to accumulate results in a result memory, performing multiply-accumulate operations for each matrix element of each matrix.
-
公开(公告)号:US09946533B2
公开(公告)日:2018-04-17
申请号:US14941171
申请日:2015-11-13
Applicant: Apple Inc.
Inventor: Eric Bainville , Ali Sazegari
IPC: G06F9/44
Abstract: A novel software updating method is provided. A target file is divided into segments, where some segments are updated by patching, while other segments are updated by archiving. The segmentation of the update allows very large files such as DYLD shared caches to be patched in-place, i.e., by using free space available within the file to perform patching rather than requiring enough free space on disk to store both the new version and the old version of the file. The segmentation of the update also allows each segment to be updated individually by the most optimal update method (copy, patch, or archive) so that the size of the update file can be minimized.
-
公开(公告)号:US12105953B2
公开(公告)日:2024-10-01
申请号:US17585479
申请日:2022-01-26
Applicant: Apple Inc.
Inventor: Christian Martelock , Eric Bainville , Ali Sazegari
IPC: G06F3/06
CPC classification number: G06F3/0608 , G06F3/064 , G06F3/0679
Abstract: The subject technology groups received data in data blocks having a predetermined number of bytes. For each received data block, a compressed data block is written to an output buffer. The compressed data block includes a mask block having a same number of bits as the predetermined number, and a subsequent block. The mask block includes in a same order as bytes within the corresponding data block, a zero corresponding to a zero-byte within the data block, and a one corresponding to each non-zero byte within the data block. The subsequent block includes non-zero bytes within the corresponding data block in a same order as the non-zero bytes within the data block.
-
公开(公告)号:US11822516B2
公开(公告)日:2023-11-21
申请号:US17936805
申请日:2022-09-29
Applicant: Apple Inc.
Inventor: Lars M. Lindberg , Ali Sazegari
CPC classification number: G06F16/1744 , G06F16/2365 , G06F7/49947 , G06F7/523 , G06F7/556 , G06T9/001
Abstract: Methods for lossy and lossless pre-processing of image data. In one embodiment, a method for lossy pre-processing image data, where the method may include, at a computing device: receiving the image data, where the image data includes a model having a mesh, the mesh includes vertices defining a surface, the vertices including attribute vectors, and the attribute vectors including values. The method also including quantizing the values of the attribute vectors to produce modified values, where a precision of the modified values is determined based on a largest power determined using a largest exponent of the values, encoding pairs of the modified values into two corresponding units of information. The method also including, for each pair of the pairs of the modified values, serially storing the two corresponding units of information as a data stream into a buffer, and compressing the data stream in the buffer.
-
公开(公告)号:US11537399B2
公开(公告)日:2022-12-27
申请号:US17373144
申请日:2021-07-12
Applicant: Apple Inc.
Inventor: Eric Bainville , Ali Sazegari
Abstract: In an embodiment, a processor supports one or more compression assist instructions which may be employed in compression software to improve the performance of the processor when performing compression/decompression. That is, the compression/decompression task may be performed more rapidly and consume less power when the compression assist instructions are employed then when they are not. In some cases, the cost of a more effective, more complex compression algorithm may be reduced to the cost of a less effective, less complex compression algorithm.
-
公开(公告)号:US10970078B2
公开(公告)日:2021-04-06
申请号:US15946719
申请日:2018-04-05
Applicant: Apple Inc.
Inventor: Eric Bainville , Tal Uliel , Jeffry E. Gonion , Ali Sazegari , Erik K. Norden
Abstract: In an embodiment, a computation engine may perform computations on input vectors having vector elements of a first precision and data type. The computation engine may convert the vector elements from the first precision to a second precision and may also interleave the vector elements as specified by an instruction issued by the processor to the computation engine. The interleave may be based on a ratio of a result precision and the second precision. An extract instruction may be supported to extract results from the computations and convert and deinterleave the vector elements to provide a compact result in a desired order.
-
公开(公告)号:US10860310B2
公开(公告)日:2020-12-08
申请号:US14941229
申请日:2015-11-13
Applicant: Apple Inc.
Inventor: Eric Bainville , Ali Sazegari
Abstract: A novel software updating method is provided. A target file is divided into segments, where some segments are updated by patching, while other segments are updated by archiving. The segmentation of the update allows very large files such as DYLD shared caches to be patched in-place, i.e., by using free space available within the file to perform patching rather than requiring enough free space on disk to store both the new version and the old version of the file. The segmentation of the update also allows each segment to be updated individually by the most optimal update method (copy, patch, or archive) so that the size of the update file can be minimized.
-
-
-
-
-
-
-
-
-