LONDON Graphics core licensor Imagination Technologies Group plc (Kings Langley, England) is preparing compilers that will be able to assign tasks across both graphics and general-purpose processing units.
Imagination has had its own 32-bit Meta processor core on its books for most of this decade but it best known as a licensor of application-specific digital audio broadcast, graphics and video cores. However, this familiarity with digital signal processing and parallelism could now stand the company in good stead as the techniques become more broadly relevant.
"OpenCL is definitely an important development," said Hossein Yassaie, chief executive of Imagination Technologies, speaking of a standard in development by the Khronos Group for handling parallel programming on multicore CPUs and graphics processors. It was originally developed with help from Apple Inc. Yassie was speaking to an audience of chip industry executives at a meeting organized by Silicon SouthWest regional support network held in Bath, England.
Imagination is part of a growing group of companies, including Advanced Micro Devices, Nvidia and Qualcomm, who are working on software techniques to allow GPUs to run applications other than graphics rendering.
"For example you could use a GPU to perform visual recognition, and to do advanced maths. Running Linux [operating system on a GPU] would be a silly thing to do," said Yassaie. But he agreed that system-on-chips frequently include multiple graphics and general-purpose cores and that as complexity increases it is necessary to utilize all the resources efficiently. "We're developing compilers to do exactly that," said Yassie.
However, Yassaie is an even more ardent supporter of parallelism within a processor than he is of processor-based parallelism. The Meta processor has been capable of supporting multiple threads and Yassaie said he has set a rule for Imagination developers that all digital cores should be made able to multithread.
"Cores are frequently designed so they are idle 70-percent of the time because they cannot access memory," he said in exasperation. Multithreading aims to increase the utilization of a core by leveraging thread-level as well as instruction-level parallelism. It allows the context of a stalled thread to be set aside and a different thread processed. "Multithreading first, multiprocessing second," Yassaie told the audience.
Related links and articles:
Ten emerging technologies to watch for in 2010
Imagination preps three-tier Meta processor roadmap
AMD rolls OpenCL parallel programming tool
Get DSP performance from C