Intel hosted a webinar on running OpenCL on Intel Core processor. The webinar I attended this morning (9am, July 11th), is first part of the three-part webinars on this topic. It was well organized and educational and I think the next seminar will be even more useful (since it deals with programming using OpenCL. I took notes during the webinar to get you up to speed in case you want to attend the next two seminars.
* July 18-Writing Efficient Code for OpenCL Applications<http://link.software-dispatch.intel.com/u.d?V4GtisPHZ8Stq7_bNj1hJ=3231> * July 25-Creating and Optimizing OpenCL Applications<http://link.software-dispatch.intel.com/u.d?K4GtisPHZ8Stq7_bNj1hS=3241>
OpenCL: Allows us to swap out loops with kernels for parallel processing.Introduction: Intel’s 3rd Generation Core Processor.
- Inter-operability between CPUs and HD Graphics.
- Device 1: maps to four cores of intel processor (CPUs)
- Device 2: Intel HD Graphics.
- Allows access to all compute units available within system (unified compute model - CPU and HD Graphics)
- Good for multiple socket cpu - if you want to divide the openCL code with underlying memory architecture.
- Supported on Window7 and Linux.
General Electric’s use of OpenCL
- GE uses OpenCL for image reconstruction for medical imaging (O(n^3) - O(n^4))
- Need unified programming model for CPUs and GPUs
- OpenCL is most flexible (across all CPU and GPUs) - good candidate for unified programming language.
- Functional Portability: take OpenCL application and run it on multiple hardware platforms and expect it to produce correct results.
- Performance Portability: functional Portability + Deliver performance close to entitlement performance (10-20%)
- Partial Portability: functional Portability + only host code tuning is required.
- Benefits of OpenCL:
- C like language - low learning curve
- easy abstraction of host code (developers focus on kernel only)
- easy platform abstraction (don’t need to decide platform right away.)
- development resource versatility (suitable for mult. platforms)
- Uses combination of buffers (image buffers and their customized ones). Image buffers allow them to use unique part of GPU.
- Awesome chart that compares various programming models:
Intel OpenCL SDK: interoperable with Intel Media SDK with no copy overhead on Intel HD Graphics.Intel Media SDK: hardware accelerated video encode/decode and predefined set of pre-processing filtersThank you UC Berkeley Visual Computing Center for letting me know about this webinar series!