Patent number 8542745 is assigned to
The following quote was obtained by the news editors from the background information supplied by the inventors: "Today, at least two different general approaches are employed for implementing processing units: the general purpose central processing unit (CPU) and the special purpose graphics processing unit (GPU). GPUs are specialized for calculating 3-dimensional (3D) scenes to be mapped to 2-dimensional (2D) scenes for being displayed, and have parallel architectures that enable them of highly parallel processing. GPUs have therefore high processing power. However, most of the common programming applications are optimized for sequential processing on CPUs.
"Utilizing GPUs to accelerate video encoding and decoding is therefore desirable. Traditionally, in order to benefit from the powerful GPU, computation tasks (such as image or video processing etc.) would have to be re-formulated to be a 3D rendering task, so that their data are organized as graphics data, and a graphics API (Application Programming Interface) would be used. This makes GPGPU (General-Purpose computation on GPU) difficult and programs complicated.
"In order to ease and improve the GPGPU realization,
"Generally, each sequentially operated program, and each sequentially operated branch of a parallel program, is a so-called thread. Threads operate rather autonomously on their individual input data and provide output data. Input data are read from a buffer, and output data are written to a buffer. GPUs have two basic types of memories or buffers: texture storage on GPUs is usually different from other memory types, in order to enable more efficient access. In the terminology of CUDA, which is used herein, these are so-called global memory and texture memory. Global memory provides read and write access to all threads but is rather slow, while texture memory provides read-only access to threads but is fast. Data from the global memory can be copied into the texture memory. This structure is optimized for typical GPU tasks, such as texture mapping. Texture is a 2D pattern that is mapped to the surface of 3D objects.
"CUDA provides multiple multi-processors to do the same computation task on different data units simultaneously. It also provides general DRAM memory addressing methods, giving programmers flexibility to read and write data at any location in DRAM. Furthermore, it features a parallel data cache (on-chip shared memory) with very fast general read and write access, to support efficient data sharing. However, the DRAM and the cache are very limited in size and not sufficient for many tasks. Moreover, shared memory can't be accessed by host functions, i.e. functions running on a CPU when a GPU works as a co-processor of a CPU. In this case, program and data would have to be managed by the CPU first before the control goes to GPU.
Most Popular Stories
- Updates on Everglades' Stranded Pilot Whales
- NSA Tracks 5 Billion Cellphone Records a Day
- Hezbollah Chief's Assassination Claimed by Sunni Group
- Stolen Cobalt-60 Recovered in Mexico
- Ford Mustang Still Packs Power
- Wind Power and Wildlife Can Coexist
- Allstate Seeks to Invest in Minority Firms
- Sarmiento to Handle Greeley Latin Ops
- First-time Jobless Claims Drop Below 300,000
- White House Pushes to Extend Unemployment Benefits