• Save
GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite

on

  • 710 views

This was a talk I gave at NVidia's Graphics Technology Conference in San Jose, California in 2010. On NVidia's site you can find this talk, synced with the audio here: ...

This was a talk I gave at NVidia's Graphics Technology Conference in San Jose, California in 2010. On NVidia's site you can find this talk, synced with the audio here: http://nvidia.fullviewmedia.com/gtc2010/0923-k-2051.html

Statistics

Views

Total Views
710
Views on SlideShare
574
Embed Views
136

Actions

Likes
2
Downloads
0
Comments
0

4 Embeds 136

http://blog.kevingoldsmith.com 126
https://twitter.com 6
http://www.linkedin.com 3
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • http://www.nasaimages.org/luna/servlet/detail/nasaNAS~13~13~69471~174570:ANALOG-COMPUTER---ANALOG-RECORDING-?qvq=w4s:/when/1959/;q:computer;lc:NVA2~32~32,NVA2~31~31,NVA2~30~30,NVA2~62~62,NVA2~61~61,NVA2~60~60,nasaNAS~22~22,NVA2~19~19,nasaNAS~20~20,NVA2~18~18,NVA2~17~17,NVA2~49~49,NVA2~16~16,NVA2~8~8,NVA2~48~48,NVA2~15~15,NVA2~47~47,NVA2~9~9,NVA2~14~14,NVA2~46~46,NVA2~13~13,NVA2~45~45,NVA2~44~44,NVA2~43~43,NVA2~42~42,nasaNAS~2~2,NVA2~41~41,nasaNAS~4~4,NSVS~3~3,nasaNAS~5~5,NVA2~29~29,nasaNAS~6~6,NVA2~28~28,nasaNAS~7~7,NVA2~27~27,NVA2~59~59,NVA2~26~26,NVA2~58~58,nasaNAS~8~8,NVA2~25~25,NVA2~57~57,NVA2~24~24,nasaNAS~9~9,NVA2~56~56,NVA2~23~23,NVA2~55~55,NVA2~22~22,NVA2~54~54,NVA2~21~21,NVA2~53~53,nasaNAS~16~16,NVA2~20~20,NVA2~52~52,NVA2~51~51,nasaNAS~13~13,NVA2~50~50,nasaNAS~12~12,nasaNAS~10~10,NVA2~33~33,NVA2~34~34,NVA2~1~1,NVA2~35~35,NVA2~36~36,NVA2~37~37,NVA2~38~38,NVA2~39~39&mi=0&trs=6
  • http://www.flickr.com/photos/seattlemunicipalarchives/3365336567/sizes/o/in/photostream/
  • http://www.flickr.com/photos/86624586@N00/10176897/
  • http://www.informationweek.com/news/hardware/processors/showArticle.jhtml?articleID=226400065
  • http://en.wikipedia.org/wiki/Amdahl%27s_law
  • http://www.flickr.com/photos/walkn/3526522573/

GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite Presentation Transcript

  • 1. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe CreativeSuiteKevin Goldsmith | Senior Engineering Manager1
  • 2. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Why this talk?Taking advantage of the GPU for things other than rendering to the screen feels like jumping into thefuture of technology, like you should be wearing a lab coat to work. It totally is, but if you want to doit for real software that people pay for, there are some things to watch out for.2Image from nasaimages.org
  • 3. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Overview Introduction Using GPUs for Commercial Software GPU Development Gotchas Questions3
  • 4. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Introduction4
  • 5. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.My Team – Adobe Image Foundation In the Core Technologies Group at Adobe We produce libraries that make it easier for Adobe teams to use OpenGL, OpenCL, and CUDA We created the Pixel Bender language Framework for building accelerated GPU and multi-core image processing graphs Some of the products which use our technologies: Photoshop, After Effects, Premiere, FlashPlayer, Flash Pro, Flash Builder, Encore, Audition, Soundbooth, Premiere Elements, PhotoshopElements First release of our technology was in Adobe Creative Suite CS35
  • 6. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.GPU features in Adobe ProductsPre CS3•After Effects –OpenGLdrawing/effect•Premiere – DirectXeffects•Acrobat 3D –DirectX/OpenGLCS3 (2007)•AIF/Pixel Bender debuts inAE CS3 - 18 GPU effects•Acrobat GPU vectordrawing/compositingCS4 (2008)•Photoshop GPU-accelerated canvas, 3Dfeatures, Pixel Benderplug-in•AE 3rd party Pixel Bendersupport, Cartoon filter•Premiere – GPUacceleration on mac•Flash 10 GPUacceleration fordrawing/video•GPU-accelerated videoplayback for othervideo/audio appsCS5 (2010)•Premiere MercuryEngine•Photoshop Oil Paintfilter6
  • 7. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Using GPUs in Commercial Software7Seattle Municipal Archives
  • 8. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Getting buy-in: Educating Management Performance Competition Demos8
  • 9. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Getting going: Educating Engineering and QE Training Constraining supported cards Selecting Appropriate APIs Tooling Performance Demos(most of what the rest of the talk is about)9
  • 10. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Keeping it going: delivering and iterating Automation Fall-back plan Hot-patching10
  • 11. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.GPU development gotchas11Photo by Kevin Walsh
  • 12. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.GPUs in the “real world” Intel has more than 50% of the GPU market (July 2010, Information Week) Real people don’t upgrade their hardware that often Windows XP still has more than 60% of the OS market share (August 2010, Netmarketsharenumbers) Only 61% of Steam users have DX10-level hardware (August 2010, Steam Hardware &Software survey)12
  • 13. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.GPUs in the “real world” Intel has more than 50% of the GPU market (July 2010, Information Week) Real people don’t upgrade their hardware that often Windows XP still has more than 60% of the OS market share (August 2010, Netmarketsharenumbers) Only 61% of Steam users have DX10-level hardware (August 2010, Steam Hardware &Software survey)What to do?13
  • 14. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Know your market! Professional users If I make my living using your software, I’ll upgrade my equipment if it will make my life easier(and I can afford it) Premiere CS5: 64bit only, CUDA acceleration, 3 (high-end) cards supported Pro-sumers Maybe more willing (and more able) to switch to new hardware or upgrade because theirmachines aren’t their livelihood. Like the “cool” factor. Closer to gamers. Hobbyist/Occasional users Won’t upgrade for your software Angry if it doesn’t work with their machines Premiere Elements:If it doesn’t run near real-time on a Core 2 Duo with IIG the users will revolt14
  • 15. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Scale up Work on a wide range of hardware, but work better on better hardware This is what my team advocates within Adobe Pros Users with high-end machines are happy Users with low-end machines are (mostly) happy You can sell to more users Cons Need to implement the same feature in multiple ways Much larger test matrix May need to support multiple APIs Significantly more development effortIt is a classic ROI decision.15
  • 16. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Be clear what hardware you work on Set clear minimum system configurations List specific cards or card families if possible Users want to know if their hardware will work with your software or which cards to buy Test for capabilities, not chipsets or drivers Fail gracefully Blacklist bad cards/drivers, don’t whitelist good ones. Consider allowing users to run a test program on their computer from your site to guaranteecompliance16
  • 17. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Amdahl’s LawThe system is only as fast as it’s slowest component Make sure that you are using the GPU for the right things Rather than try to integrate GPU processing into a hostile architecture, look for new features thancan be developed using the GPU Measure performance constantly Beware “premature optimizations” Every trip over the bus is a bottleneck Can you replace CPU code with CUDA/OpenCL code to keep data on the card? Is slow GPU code in the middle of fast GPU code faster than moving data back to the CPU andthen again to the card?17
  • 18. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Feel your user’s pain everyday Make sure that someone is someone is using the low-end of your supported hardware as theirprimary development / QE machine If someone on the team isn’t having to live with that daily, how do you expect your users? Try to cycle cards through the development / QE team So different members of the team notice the performance characteristics of each supported card18
  • 19. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Life with drivers Drivers change often Your code that worked perfectly can be busted by the time the user installs it You can’t expect a user will have the latest drivers installed Be prepared to work around driver issues When you do, document them really well in the code Be able to hot patch existing installs if necessary Work with the IHVs/OS Vendors to report bugs Make sure you can send them code that reproduces the problem Someone on your team should always running the latest driver Blacklist known bad driver versions Test new features against old drivers periodically to make sure you aren’t turning up new driverbugs19
  • 20. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Choosing Your APIs Does your chosen API limit your supported hardware? Not necessarily a bad thing Know when to use Proprietary vs Open APIs Cross-platform development Development/Support costs Can always use both… Does an API limit mathematical precision for critical calculations?20
  • 21. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Automated testing Automation is key Test matrix is 3 dimensional Operating System/Version Graphics Card Driver version Performance Tests need to be part of test runs Getting tossed to the “slow path” Need to know about it immediately Regression tests should include some low level HW verifications (really useful for finding driverissues) Good automated tests let you send them to the IHVs to be part of their driver validation suites21
  • 22. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Strategies: Precision IEEE compliance is nice, but it is expensive Know when it is important and when it is ok to approximate No matter what level of compliance there is, results will vary from CPU to GPU and from GPU toGPU Understand how API choice and how runtime parameters affect precision Optionally, allow the user to specify their precision requirements22
  • 23. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Questions?23
  • 24. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 25. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.Image attributionAll images used in this presentation were used in accordance with the image creators’ specifiedlicensing. Their inclusion implies no endorsement of me, Adobe or this presentation. The URLs forthe images are listed below. http://www.nasaimages.org/ http://www.flickr.com/photos/seattlemunicipalarchives/3365336567/ http://www.flickr.com/photos/86624586@N00/10176897/ http://www.flickr.com/photos/walkn/3526522573/25