SlideShare a Scribd company logo
1 of 25
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative
Suite
Kevin Goldsmith | Senior Engineering Manager
1
© 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 the
future of technology, like you should be wearing a lab coat to work. It totally is, but if you want to do
it for real software that people pay for, there are some things to watch out for.
2
Image from nasaimages.org
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Overview
 Introduction
 Using GPUs for Commercial Software
 GPU Development Gotchas
 Questions
3
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Introduction
4
© 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, Flash
Player, Flash Pro, Flash Builder, Encore, Audition, Soundbooth, Premiere Elements, Photoshop
Elements
 First release of our technology was in Adobe Creative Suite CS3
5
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
GPU features in Adobe Products
Pre CS3
•After Effects –
OpenGL
drawing/effect
•Premiere – DirectX
effects
•Acrobat 3D –
DirectX/OpenGL
CS3 (2007)
•AIF/Pixel Bender debuts in
AE CS3 - 18 GPU effects
•Acrobat GPU vector
drawing/compositing
CS4 (2008)
•Photoshop GPU-
accelerated canvas, 3D
features, Pixel Bender
plug-in
•AE 3rd party Pixel Bender
support, Cartoon filter
•Premiere – GPU
acceleration on mac
•Flash 10 GPU
acceleration for
drawing/video
•GPU-accelerated video
playback for other
video/audio apps
CS5 (2010)
•Premiere Mercury
Engine
•Photoshop Oil Paint
filter
6
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Using GPUs in Commercial Software
7
Seattle Municipal Archives
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Getting buy-in: Educating Management
 Performance
 Competition
 Demos
8
© 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
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Keeping it going: delivering and iterating
 Automation
 Fall-back plan
 Hot-patching
10
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
GPU development gotchas
11
Photo by Kevin Walsh
© 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, Netmarketshare
numbers)
 Only 61% of Steam users have DX10-level hardware (August 2010, Steam Hardware &
Software survey)
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, Netmarketshare
numbers)
 Only 61% of Steam users have DX10-level hardware (August 2010, Steam Hardware &
Software survey)
What to do?
13
© 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 their
machines 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 revolt
14
© 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 effort
It is a classic ROI decision.
15
© 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 guarantee
compliance
16
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Strategies: Amdahl’s Law
The 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 than
can 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 and
then again to the card?
17
© 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 their
primary 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 card
18
© 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 driver
bugs
19
© 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
© 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 driver
issues)
 Good automated tests let you send them to the IHVs to be part of their driver validation suites
21
© 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 to
GPU
 Understand how API choice and how runtime parameters affect precision
 Optionally, allow the user to specify their precision requirements
22
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Questions?
23
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
© 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Image attribution
All images used in this presentation were used in accordance with the image creators’ specified
licensing. Their inclusion implies no endorsement of me, Adobe or this presentation. The URLs for
the 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

More Related Content

What's hot

Best practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devicesBest practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devicesMichael Chaize
 
AD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And TomorrowAD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And Tomorrowpjanzen11
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101pdhannan
 
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...marjoramg
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereStephan H. Wissel
 
Embedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationEmbedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationBoris Bokowski
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads ConferenceIndicThreads
 
Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Yagiz Gurgul
 
worklight_development_environment
worklight_development_environmentworklight_development_environment
worklight_development_environmentAravindharamanan S
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...Stephan H. Wissel
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...Stephan H. Wissel
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT Group
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the CloudBert Ertman
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiBob Paulin
 
Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Anna Russo
 
The Strategic Role of the Enterprise Application Framework
The Strategic Role of the Enterprise Application FrameworkThe Strategic Role of the Enterprise Application Framework
The Strategic Role of the Enterprise Application FrameworkJean-Marc Desvaux
 
Innovation and the Adobe Flash Platform
Innovation and the Adobe Flash PlatformInnovation and the Adobe Flash Platform
Innovation and the Adobe Flash PlatformMichael Chaize
 

What's hot (20)

Best practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devicesBest practices for Flash applications on mobile devices
Best practices for Flash applications on mobile devices
 
AD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And TomorrowAD201 - IBM Domino Application Development Today And Tomorrow
AD201 - IBM Domino Application Development Today And Tomorrow
 
X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101
 
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
Connect 2014 AD209 - Making Your Development Team More Productive With IBM Do...
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
 
Embedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationEmbedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse application
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Java tutorial
Java tutorialJava tutorial
Java tutorial
 
Flash Iphone Fitc 2010
Flash Iphone Fitc 2010Flash Iphone Fitc 2010
Flash Iphone Fitc 2010
 
worklight_development_environment
worklight_development_environmentworklight_development_environment
worklight_development_environment
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
Java server face tutorial
Java server face tutorialJava server face tutorial
Java server face tutorial
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
 
Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010Application Quality with Visual Studio 2010
Application Quality with Visual Studio 2010
 
The Strategic Role of the Enterprise Application Framework
The Strategic Role of the Enterprise Application FrameworkThe Strategic Role of the Enterprise Application Framework
The Strategic Role of the Enterprise Application Framework
 
Innovation and the Adobe Flash Platform
Innovation and the Adobe Flash PlatformInnovation and the Adobe Flash Platform
Innovation and the Adobe Flash Platform
 

Viewers also liked

Fail Safe, Fail Smart, Succeed
Fail Safe, Fail Smart, SucceedFail Safe, Fail Smart, Succeed
Fail Safe, Fail Smart, SucceedKevin Goldsmith
 
Creating a Culture of Continuous Improvement at Avvo
Creating a Culture of Continuous Improvement at AvvoCreating a Culture of Continuous Improvement at Avvo
Creating a Culture of Continuous Improvement at AvvoKevin Goldsmith
 
Microservices at Spotify
Microservices at SpotifyMicroservices at Spotify
Microservices at SpotifyKevin Goldsmith
 
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...Kevin Goldsmith
 
Innovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityInnovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityKevin Goldsmith
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and ArchitectureKevin Goldsmith
 
Building A Strong Engineering Culture - my talk from BBC Develop 2013
Building A Strong Engineering Culture - my talk from BBC Develop 2013Building A Strong Engineering Culture - my talk from BBC Develop 2013
Building A Strong Engineering Culture - my talk from BBC Develop 2013Kevin Goldsmith
 
Agile Business Transformation
Agile Business TransformationAgile Business Transformation
Agile Business TransformationKevin Goldsmith
 
Failing Up - Creating a Failsafe Environment
Failing Up - Creating a Failsafe EnvironmentFailing Up - Creating a Failsafe Environment
Failing Up - Creating a Failsafe EnvironmentKevin Goldsmith
 
Building Lean and Agile in the Real World
Building Lean and Agile in the Real WorldBuilding Lean and Agile in the Real World
Building Lean and Agile in the Real WorldKevin Goldsmith
 
Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Kevin Goldsmith
 
Empowering Engineering Talent - an update from Spotify
Empowering Engineering Talent - an update from SpotifyEmpowering Engineering Talent - an update from Spotify
Empowering Engineering Talent - an update from SpotifyKevin Goldsmith
 
Managing a software engineering team
Managing a software engineering teamManaging a software engineering team
Managing a software engineering teamSebastiano Armeli
 
Scaling Agile at Spotify (representation)
Scaling Agile at Spotify (representation)Scaling Agile at Spotify (representation)
Scaling Agile at Spotify (representation)Vlad Mysla
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productiveKarsten Dambekalns
 

Viewers also liked (20)

Fail Safe, Fail Smart, Succeed
Fail Safe, Fail Smart, SucceedFail Safe, Fail Smart, Succeed
Fail Safe, Fail Smart, Succeed
 
The Spotify Tribe
The Spotify TribeThe Spotify Tribe
The Spotify Tribe
 
Apportioning Monoliths
Apportioning MonolithsApportioning Monoliths
Apportioning Monoliths
 
Creating a Culture of Continuous Improvement at Avvo
Creating a Culture of Continuous Improvement at AvvoCreating a Culture of Continuous Improvement at Avvo
Creating a Culture of Continuous Improvement at Avvo
 
Microservices at Spotify
Microservices at SpotifyMicroservices at Spotify
Microservices at Spotify
 
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
 
Innovation, Autonomy and Accountability
Innovation, Autonomy and AccountabilityInnovation, Autonomy and Accountability
Innovation, Autonomy and Accountability
 
Organization and Architecture
Organization and ArchitectureOrganization and Architecture
Organization and Architecture
 
Building A Strong Engineering Culture - my talk from BBC Develop 2013
Building A Strong Engineering Culture - my talk from BBC Develop 2013Building A Strong Engineering Culture - my talk from BBC Develop 2013
Building A Strong Engineering Culture - my talk from BBC Develop 2013
 
Agile Business Transformation
Agile Business TransformationAgile Business Transformation
Agile Business Transformation
 
Failing Up - Creating a Failsafe Environment
Failing Up - Creating a Failsafe EnvironmentFailing Up - Creating a Failsafe Environment
Failing Up - Creating a Failsafe Environment
 
Building Lean and Agile in the Real World
Building Lean and Agile in the Real WorldBuilding Lean and Agile in the Real World
Building Lean and Agile in the Real World
 
Let's Build a Product Development Organization!
Let's Build a Product Development Organization!Let's Build a Product Development Organization!
Let's Build a Product Development Organization!
 
Empowering Engineering Talent - an update from Spotify
Empowering Engineering Talent - an update from SpotifyEmpowering Engineering Talent - an update from Spotify
Empowering Engineering Talent - an update from Spotify
 
Managing a software engineering team
Managing a software engineering teamManaging a software engineering team
Managing a software engineering team
 
Scaling Agile at Spotify (representation)
Scaling Agile at Spotify (representation)Scaling Agile at Spotify (representation)
Scaling Agile at Spotify (representation)
 
Agile at Spotify
Agile at SpotifyAgile at Spotify
Agile at Spotify
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productive
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Culture
CultureCulture
Culture
 

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

Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...Intel® Software
 
Real-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPAReal-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPAIntel® Software
 
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProMedia and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProPrincipled Technologies
 
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSEIBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSEFraser Chadburn
 
Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Andy Hall
 
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)Fraser Chadburn
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Matteo Valoriani
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Codemotion
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Codemotion
 
10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)Akhila Dakshina
 
Android on Intel platforms : current state, near-future, future & developers ...
Android on Intel platforms : current state, near-future, future & developers ...Android on Intel platforms : current state, near-future, future & developers ...
Android on Intel platforms : current state, near-future, future & developers ...BeMyApp
 
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)Intergen
 
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUs
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUsCMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUs
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUsAmazon Web Services
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)byteLAKE
 
Intel® Graphics Performance Analyzers
Intel® Graphics Performance AnalyzersIntel® Graphics Performance Analyzers
Intel® Graphics Performance AnalyzersIntel® Software
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upIntel® Software
 

Similar to GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite (20)

Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
 
Apu fc & s project
Apu fc & s projectApu fc & s project
Apu fc & s project
 
Real-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPAReal-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPA
 
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac ProMedia and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
Media and entertainment workload comparison: HP Z8 vs. Apple Mac Pro
 
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSEIBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
IBM Rational Rhapsody 8.3.1 install guide with Cygwin for Executable MBSE
 
Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業Flash/AIRの最新情報及びARMとの協業
Flash/AIRの最新情報及びARMとの協業
 
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
Rational Rhapsody 8.3 with Cygwin and iFixes (www.executablembse.com)
 
Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools Debug, Analyze and Optimize Games with Intel Tools
Debug, Analyze and Optimize Games with Intel Tools
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
 
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
Debug, Analyze and Optimize Games with Intel Tools - Matteo Valoriani - Codem...
 
10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)10. GPU - Video Card (Display, Graphics, VGA)
10. GPU - Video Card (Display, Graphics, VGA)
 
Android on Intel platforms : current state, near-future, future & developers ...
Android on Intel platforms : current state, near-future, future & developers ...Android on Intel platforms : current state, near-future, future & developers ...
Android on Intel platforms : current state, near-future, future & developers ...
 
Perfect pdf sample
Perfect pdf samplePerfect pdf sample
Perfect pdf sample
 
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)
Windows Accelerate IT Pro Bootcamp: Platform Delivery (Module 2 of 8)
 
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUs
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUsCMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUs
CMP208_Unleash Your Graphics Solutions with the Flexibility of Elastic GPUs
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)
byteLAKE's CFD Suite (AI-accelerated CFD) - AI Training at the Edge (benchmark)
 
Intel® Graphics Performance Analyzers
Intel® Graphics Performance AnalyzersIntel® Graphics Performance Analyzers
Intel® Graphics Performance Analyzers
 
More explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff up
 
PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )PowerAI Deep Dive ( key points )
PowerAI Deep Dive ( key points )
 

More from Kevin Goldsmith

It's teams all the way down - Design patterns for technology organizations
It's teams all the way down - Design patterns for technology organizationsIt's teams all the way down - Design patterns for technology organizations
It's teams all the way down - Design patterns for technology organizationsKevin Goldsmith
 
What Vulnerabilities? How and why to secure your ML/AI Solutions
What Vulnerabilities? How and why to secure your ML/AI SolutionsWhat Vulnerabilities? How and why to secure your ML/AI Solutions
What Vulnerabilities? How and why to secure your ML/AI SolutionsKevin Goldsmith
 
Raising the subject of raises
Raising the subject of raisesRaising the subject of raises
Raising the subject of raisesKevin Goldsmith
 
Managing partly distributed teams
Managing partly distributed teamsManaging partly distributed teams
Managing partly distributed teamsKevin Goldsmith
 
The (near) future of personal computers
The (near) future of personal computersThe (near) future of personal computers
The (near) future of personal computersKevin Goldsmith
 
Pixel Bender - 2011 AMD Fusion Conference
Pixel Bender - 2011 AMD Fusion ConferencePixel Bender - 2011 AMD Fusion Conference
Pixel Bender - 2011 AMD Fusion ConferenceKevin Goldsmith
 
It Is All About the Benjamins: the Real World Economics of HPC
It Is All About the Benjamins: the Real World Economics of HPCIt Is All About the Benjamins: the Real World Economics of HPC
It Is All About the Benjamins: the Real World Economics of HPCKevin Goldsmith
 
Parallelism, the Cloud, and the Tools of the Future for the next generation o...
Parallelism, the Cloud, and the Tools of the Future for the next generation o...Parallelism, the Cloud, and the Tools of the Future for the next generation o...
Parallelism, the Cloud, and the Tools of the Future for the next generation o...Kevin Goldsmith
 
Innovation and organization
Innovation and organizationInnovation and organization
Innovation and organizationKevin Goldsmith
 
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...Kevin Goldsmith
 
A Software Career (2017)
A Software Career (2017)A Software Career (2017)
A Software Career (2017)Kevin Goldsmith
 
When why and how to stop coding as your day job
When why and how to stop coding as your day jobWhen why and how to stop coding as your day job
When why and how to stop coding as your day jobKevin Goldsmith
 
Presenting to executives
Presenting to executivesPresenting to executives
Presenting to executivesKevin Goldsmith
 
Crafting a Mission and Vision For Your Team
Crafting a Mission and Vision For Your TeamCrafting a Mission and Vision For Your Team
Crafting a Mission and Vision For Your TeamKevin Goldsmith
 
You Are Doing Autonomy Wrong
You Are Doing Autonomy WrongYou Are Doing Autonomy Wrong
You Are Doing Autonomy WrongKevin Goldsmith
 
Organization, Architecture, Autonomy and Accountability (2020)
Organization, Architecture, Autonomy and Accountability (2020)Organization, Architecture, Autonomy and Accountability (2020)
Organization, Architecture, Autonomy and Accountability (2020)Kevin Goldsmith
 

More from Kevin Goldsmith (20)

It's teams all the way down - Design patterns for technology organizations
It's teams all the way down - Design patterns for technology organizationsIt's teams all the way down - Design patterns for technology organizations
It's teams all the way down - Design patterns for technology organizations
 
What Vulnerabilities? How and why to secure your ML/AI Solutions
What Vulnerabilities? How and why to secure your ML/AI SolutionsWhat Vulnerabilities? How and why to secure your ML/AI Solutions
What Vulnerabilities? How and why to secure your ML/AI Solutions
 
Raising the subject of raises
Raising the subject of raisesRaising the subject of raises
Raising the subject of raises
 
Managing partly distributed teams
Managing partly distributed teamsManaging partly distributed teams
Managing partly distributed teams
 
Steal from the best
Steal from the bestSteal from the best
Steal from the best
 
What is Agile?
What is Agile?What is Agile?
What is Agile?
 
The (near) future of personal computers
The (near) future of personal computersThe (near) future of personal computers
The (near) future of personal computers
 
Pixel Bender - 2011 AMD Fusion Conference
Pixel Bender - 2011 AMD Fusion ConferencePixel Bender - 2011 AMD Fusion Conference
Pixel Bender - 2011 AMD Fusion Conference
 
It Is All About the Benjamins: the Real World Economics of HPC
It Is All About the Benjamins: the Real World Economics of HPCIt Is All About the Benjamins: the Real World Economics of HPC
It Is All About the Benjamins: the Real World Economics of HPC
 
Parallelism, the Cloud, and the Tools of the Future for the next generation o...
Parallelism, the Cloud, and the Tools of the Future for the next generation o...Parallelism, the Cloud, and the Tools of the Future for the next generation o...
Parallelism, the Cloud, and the Tools of the Future for the next generation o...
 
Innovation and organization
Innovation and organizationInnovation and organization
Innovation and organization
 
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...
Image and Video Processing Using Adobe Image Foundation's Toolkit For Flash -...
 
My CMU alumni journey
My CMU alumni journeyMy CMU alumni journey
My CMU alumni journey
 
Building Lean
Building LeanBuilding Lean
Building Lean
 
A Software Career (2017)
A Software Career (2017)A Software Career (2017)
A Software Career (2017)
 
When why and how to stop coding as your day job
When why and how to stop coding as your day jobWhen why and how to stop coding as your day job
When why and how to stop coding as your day job
 
Presenting to executives
Presenting to executivesPresenting to executives
Presenting to executives
 
Crafting a Mission and Vision For Your Team
Crafting a Mission and Vision For Your TeamCrafting a Mission and Vision For Your Team
Crafting a Mission and Vision For Your Team
 
You Are Doing Autonomy Wrong
You Are Doing Autonomy WrongYou Are Doing Autonomy Wrong
You Are Doing Autonomy Wrong
 
Organization, Architecture, Autonomy and Accountability (2020)
Organization, Architecture, Autonomy and Accountability (2020)Organization, Architecture, Autonomy and Accountability (2020)
Organization, Architecture, Autonomy and Accountability (2020)
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

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

  • 1. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative Suite Kevin Goldsmith | Senior Engineering Manager 1
  • 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 the future of technology, like you should be wearing a lab coat to work. It totally is, but if you want to do it for real software that people pay for, there are some things to watch out for. 2 Image from nasaimages.org
  • 3. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Overview  Introduction  Using GPUs for Commercial Software  GPU Development Gotchas  Questions 3
  • 4. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Introduction 4
  • 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, Flash Player, Flash Pro, Flash Builder, Encore, Audition, Soundbooth, Premiere Elements, Photoshop Elements  First release of our technology was in Adobe Creative Suite CS3 5
  • 6. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. GPU features in Adobe Products Pre CS3 •After Effects – OpenGL drawing/effect •Premiere – DirectX effects •Acrobat 3D – DirectX/OpenGL CS3 (2007) •AIF/Pixel Bender debuts in AE CS3 - 18 GPU effects •Acrobat GPU vector drawing/compositing CS4 (2008) •Photoshop GPU- accelerated canvas, 3D features, Pixel Bender plug-in •AE 3rd party Pixel Bender support, Cartoon filter •Premiere – GPU acceleration on mac •Flash 10 GPU acceleration for drawing/video •GPU-accelerated video playback for other video/audio apps CS5 (2010) •Premiere Mercury Engine •Photoshop Oil Paint filter 6
  • 7. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Using GPUs in Commercial Software 7 Seattle Municipal Archives
  • 8. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Getting buy-in: Educating Management  Performance  Competition  Demos 8
  • 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-patching 10
  • 11. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. GPU development gotchas 11 Photo 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, Netmarketshare numbers)  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, Netmarketshare numbers)  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 their machines 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 revolt 14
  • 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 effort It 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 guarantee compliance 16
  • 17. © 2010 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Strategies: Amdahl’s Law The 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 than can 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 and then 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 their primary 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 card 18
  • 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 driver bugs 19
  • 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 driver issues)  Good automated tests let you send them to the IHVs to be part of their driver validation suites 21
  • 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 to GPU  Understand how API choice and how runtime parameters affect precision  Optionally, allow the user to specify their precision requirements 22
  • 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 attribution All images used in this presentation were used in accordance with the image creators’ specified licensing. Their inclusion implies no endorsement of me, Adobe or this presentation. The URLs for the 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

Editor's Notes

  1. 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
  2. http://www.flickr.com/photos/seattlemunicipalarchives/3365336567/sizes/o/in/photostream/
  3. http://www.flickr.com/photos/86624586@N00/10176897/
  4. http://www.informationweek.com/news/hardware/processors/showArticle.jhtml?articleID=226400065
  5. http://en.wikipedia.org/wiki/Amdahl%27s_law
  6. http://www.flickr.com/photos/walkn/3526522573/