opencl @ adobe - khronos group...basic 3d black & white brightness & contrast color balance...
TRANSCRIPT
![Page 1: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/1.jpg)
Page 1 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
OpenCL @ Adobe
Eric Berdahl Adobe Imaging Foundation Engineering Manager
Adobe Systems Inc.
![Page 2: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/2.jpg)
Page 2 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Point product support for
OpenGL
Pre-2005
AIF Project Formed
2005
History of Heterogeneous Computing at Adobe
2007 2008 2010 2012
![Page 3: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/3.jpg)
Page 3 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Adobe Imaging Foundation
• Image processing system
Apply filters to images
Do for pixels what OpenGL does for
triangles
• Support for heterogeneous hardware
GPU, (multi-core) CPU
• Framework
• Programmable language (Pixel Bender)
for kernels
Application System
Main Program
AIF Kernel Execution
Framework
Kernels Kernels
![Page 4: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/4.jpg)
Page 4 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Point product support for
OpenGL
Pre-2005
AIF Project Formed
2005
History of Heterogeneous Computing at Adobe
2007 2008 2010 2012
CS3 ships with GPU-accelerated
features
CS4 ships with GPU-accelerated
features
CS5 ships with GPU-accelerated
features
CS6 ships with GPU-accelerated
features
![Page 5: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/5.jpg)
Page 5 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Point product support for
OpenGL
Pre-2005
AIF Project Formed
2005
History of Heterogeneous Computing at Adobe
2007 2008 2010 2012
CS3 ships with GPU-accelerated
features
CS4 ships with GPU-accelerated
features
CS5 ships with GPU-accelerated
features
CS6 ships with OpenCL-accelerated
features
![Page 6: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/6.jpg)
Page 7 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Adobe ♥ OpenCL
• Compute API supported across vendors
• Programming model familiar to C programmers
• Demonstrated performance
• Same compute kernels on CPU and GPU!
• Adobe is now active member of OpenCL working group
- Contributing Adobe’s experience and minds to continue OpenCL evolution
![Page 7: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/7.jpg)
Page 8 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
OpenCL in Photoshop CS6
Sarah Kong Photoshop Engineering Manager
Adobe Systems Inc.
![Page 8: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/8.jpg)
Page 9 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Blur Gallery Demo
![Page 9: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/9.jpg)
Page 10 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Why OpenCL
• Only cross-platform GPGPU solution
• Advantages over OpenGL
- Learning curves; data formats; debugging
• Increasing maturity and ubiquity
![Page 10: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/10.jpg)
Page 11 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
How did we do it?
• OpenCL kernel was naïve port of SSE2 function (scheduled with TBB on
CPU)
• Broken into 2K x 2K blocks for GPU
![Page 11: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/11.jpg)
Page 12 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
![Page 12: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/12.jpg)
Page 13 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
![Page 13: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/13.jpg)
Page 14 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
• GPU win over CPU variable and unpredictable
![Page 14: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/14.jpg)
Page 15 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
• GPU win over CPU variable and unpredictable
• Resource limits
- Win/Mac Timeout issues on low end cards.
![Page 15: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/15.jpg)
Page 16 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
• GPU win over CPU variable and unpredictable
• Resource limits
- Win/Mac Timeout issues on low end cards.
- Out of memory issues on low end cards.
![Page 16: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/16.jpg)
Page 17 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
• GPU win over CPU variable and unpredictable
• Resource limits
- Win/Mac Timeout issues on low end cards.
- Out of memory issues on low end cards.
- Used bandwidth test to enable OpenCL acceleration
- Affected by power-gating on mobile GPU
![Page 17: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/17.jpg)
Page 18 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Challenges
• Need good candidate algorithms
- Bandwidth, compute, parallel
• Need debugged C algorithm first
• GPU win over CPU variable and unpredictable
• Resource limits
- Win/Mac Timeout issues on low end cards.
- Out of memory issues on low end cards.
- Used bandwidth test to enable OpenCL acceleration
- Affected by power-gating on mobile GPU
• Platform variation
- Driver Issues
- Various compiler issues
![Page 18: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/18.jpg)
Page 19 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Performance Comparison
• Systems of standard configuration show 4-8x gain for typical use-cases
• Gains improve with Blur radii (results from MacBookPro running 10.7.4
listed below)
- General application processing accounts for majority of time in smaller workloads
Radius in Pixels (13 Megapixel image)
Radeon 6750m Core i7 (2.3 GHz)
50 4.7s 16.2s
100 7.0s 31.9s
150 9.4s 47.9s
![Page 19: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/19.jpg)
Page 20 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Future Plans
• More OpenCL in future versions
• Investigate OpenCL for CPU
![Page 20: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/20.jpg)
Page 21 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
OpenCL in Premiere Pro CS
David McGavran Premiere Pro Engineering Manager
Adobe Systems Inc.
![Page 21: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/21.jpg)
Page 22 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Demo
![Page 22: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/22.jpg)
Page 23 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Pipeline
Disk IO CPU
Processing Upload
GPU Processing
Display/ Export
![Page 23: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/23.jpg)
Page 24 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Intrinsics Adjustment layers
Color space
conversion
Deinterlacing
Compositing
Blending modes
Nested Sequences
Multicam
Time remapping
Transitions Additive dissolve
Cross dissolve
Dip to black
Dip to white
Film Dissolve
Push
Accelerated Effects Effects
Alpha adjust
Basic 3D
Black & white
Brightness & contrast
Color balance
Color pass
Color replace
Crop
Directional blur
Drop Shadow
Extract
Fast blur
Fast color corrector
Feather edges
Gamma correction
Garbage matte
Gaussian blur
Horizontal flip
Invert
Luma corrector
Luma curve
Noise
Proc amp
RGB color corrector
RGB curves
Sharpen
Three-way color corrector
Timecode
Tint
Track matte
Ultra keyer
Vertical flip
Video limiter
Warp Stabilizer
![Page 24: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/24.jpg)
Page 25 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Implementation • Pipeline entirely floating point
• 10-bit display supported
• Subtree rendering for non-accelerated effects
• Draw with OpenGL interop
![Page 25: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/25.jpg)
Page 26 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Filter Concatenation • Entirely manual
• Host kernel for successive pointwise effects
• Read once, apply multiple filters, write once
• Major bandwidth savings
![Page 26: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/26.jpg)
Page 27 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012
Future • Increase set of supported effects
• Supporting third party effects & codecs
• GPU encoding & decoding
• Multiple GPU support
• GPU Scopes
![Page 27: OpenCL @ Adobe - Khronos Group...Basic 3D Black & white Brightness & contrast Color balance Color pass Color replace Crop Directional blur Drop Shadow Extract Fast blur Fast color](https://reader030.vdocuments.site/reader030/viewer/2022040616/5f10c6237e708231d44ac057/html5/thumbnails/27.jpg)
Page 28 SIGGRAPH – Khronos OpenCL BOF - August 8, 2012