SlideShare a Scribd company logo
1 of 47
Intro To GPU Development
for a Java Developer
Bonus JDK 10 Quick Review (Time Permitting)
Will Iverson
Speaker
• Will Iverson
• Frequent SeaJUG speaker since ~2001
• Professional developer/technologist since 1990
• Diverse background includes…
• Statistical analysis of data from NASA Space Shuttle
• Product management for Apple
• Developer relations for Symantec'sVisual Cafe
• Clients over last two decades include Sun, BEA, Canal+
Technologies, AT&T,T-Mobile, State of Washington & many,
many more…
• 2010-2016, founder of Dev9, premier local consulting firm
MythBusters/Nvidia Demo
GPU Agenda
• Brief History
• Primary Uses
• Conceptual Overview
• Primary Native APIs
• Graphics
• Compute
• Java Developer Frameworks
• Local & Cloud Options
• Challenges
• Suggested Strategies
Disclaimer
• GPU development is huge
• ”Let’s cover software development in an hour…”
• Goals
• Cover lots of things from high level
• Conceptual framework
• Ideas and leads for more research
• If you are an experienced GPU/AI/ML/Crypto/etc dev
• Hold feedback to end
• Please do contribute at end! 
Brief History
CISC CPU
• 8086, 68000
CISC CPU + FPU
• 8086+8087, 68020+68881
RISC CPU
• PowerPC, ARM
CISC as RISC CPU
• Modern Intel/AMD CPU
CISC as RISC + GPU
• Modern PC
First Consumer 3D Cards
(circa 1997)
GPU Advantage
320x240 PS1 640x480 PC w/3dfx
GPU Primary Uses
•3D Graphics
•Specialized Compute
GPU Conceptual Overview
Regular
CPU App
Code/Scripts
for GPU
Video Card
Parallel
Processing
Fast
Dedicated
Memory
Driver
“Compiler”
Data Assets
e.g. 3d
geometry, 2d
texture data
Driver Data
Loading
Video Buffer
Video Output
Driver Data
Retrieval
More
Detail
Wikipedia
NVIDIA
Pascal
GP104
(GTX 1080,
1070)
NVIDIA
Pascal
GP100
(Tesla P100)
Primary Native APIs
•Graphics & Compute
•ProprietaryVendor APIs
•Microsoft, Apple, NVIDIA…
•Open Standard Multiplatform APIs
Khronos Open Standards
Primary Native APIs – Graphics
•3D Development
•OpenGL
•WebGL
•Vulkan
•DirectX (Microsoft)
•Metal (Apple)
OpenGL & Vulkan
WebGL
•OpenGL ES
• Target mobile
• Most of what you need for (non-cutting) edge 3D
•WebGL
• (Basically) OpenGL ES for the Web
• Target rendering to a HTML canvas
• https://www.shadertoy.com/browse
• https://www.shadertoy.com/howto
• https://www.construct.net/
Unity3D & libGDX Supported
Targets
libGDX PrimaryTargets libGDXWIP
Primary Native APIs – Compute
•Pure Computation
•OpenCL
•CUDA (NVIDIA)
OpenCL Development Model
ITCS 6/8010 CUDA
Programming, UNC-Charlotte,
B. Wilkinson
OpenCL Code Examples
https://github.com/bgaster/opencl-book-samples
Java Developer Frameworks
•Graphics
•JOGL
• http://jogamp.org/jogl/www/
•libGDX
• https://libgdx.badlogicgames.com/
• iOS via RoboVM fork
•JMonkeyEngine http://jmonkeyengine.org/
• iOS viaAvian JVM
LibGDX OpenGL Shader
Implementation
https://github.com/libgdx/libgdx
Java Compute Frameworks
•BitCoin!
•BitCoin Management
• Not actually mining
• https://bitcoinj.github.io/
•Java & OpenCL Miner
• https://github.com/Diablo-D3/DiabloMiner
• Abandoned!
Java Compute
•Deep Learning 4J
•https://deeplearning4j.org/gpu
•Deeplearning4j is a Java-based toolkit for building,
training and deploying deep neural networks, the
regressions and KNN.
Deeplearning4j Components
• DataVec performs data ingestion, normalization & transformation into feature vectors
• Deeplearning4j provides tools to configure neural networks & build computation graphs
• DL4J-Examples contains working examples for classification and clustering of images, time series
& text.
• As of 5/12/18, Lombok incompatibility breaks on JDK 10, use JDK 8 instead
• Keras Model Import helps import trained models from Python & Keras to DeepLearning4J & Java.
• ND4J Java access Native Libraries to quickly process Matrix Data on CPUs or GPUs.
• Choose GPUs or native CPUs for your backend linear algebra operations by changing the dependencies
ND4J’s POM.xml file
• CUDA, not OpenCL!
• ScalNet Scala wrapper for Deeplearning4j inspired by Keras.
• Runs on multi-GPUs with Spark.
• RL4J implements Deep Q Learning, A3C and other reinforcement learning algorithms for the JVM.
• Arbiter helps search the hyperparameter space to find the best neural net configuration.
DeepLearning4j
https://github.com/deeplearning4j/dl4j-examples.git
Local & Cloud Options
•NVIDIA cards support OpenCL & CUDA
•Mac OS X, eGPU…
• https://github.com/marnovo/macOS-eGPU-CUDA-
guide
•NVIDIA Product Line Exploding
•http://www.nvidia.com/page/home.html
AWS
•https://aws.amazon.com/blogs/aws/new-
amazon-ec2-instances-with-up-to-8-nvidia-
tesla-v100-gpus-p3/
AWS ML Services
Google GPU
Google Cloud
ML, AI, Big Data, etc…
Tiny Subset of
Services…
Just learning what
they all do would
take
Challenges
•Very difficult to predict & manage performance
•Could see 10x or 100x perf gains
•…or not.
•One small change could blow up parallel
execution performance
•Relatively difficult to test in advance
Suggested Strategies
• GPU Shaders
• Very specialized, visual effects
• Mock up in Photoshop, Motion, Final Cut, etc.
• Look to existing implementations & tweak
• Compute
• Think of kernels as specialized drivers, or stored procs, or
whatever
• Specialist field
• Existing kernels where possible
• Get really clear about modeling data movement
• Get really clear about how minor algo tweeks can blow things up
Interested in AI/ML?
•Start with statistics!
•Existing off-the-shelf/in-the-cloud tools
Other Potential Uses
•http://gkrypt.com/
•Java SDK, wraps GPU encryption/decryption
•AES on AMD & NVIDIA
•Let’s talk about Rootbeer & JVM-On-GPU
Even More NVIDIA Targets…
GPU Uses
Other Uses
•Deep Learning
• https://databricks.com/blog/2016/10/27/gpu-
acceleration-in-databricks.html
•TensorFlow
• https://www.tensorflow.org/versions/master/install/ins
tall_java#gpu_support
Java Unique Solutions
• https://stackoverflow.com/questions/22866901/using-java-with-
nvidia-gpus-cuda
• https://github.com/aparapi/aparapi/blob/master/doc/UsersGuide.md
• http://www.jcuda.org/tutorial/TutorialIndex.html
• https://www.codeproject.com/Articles/86551/Part-Programming-
your-Graphics-Card-GPU-with-Jav
• http://aparapi.com/
• OpenJDK Sumatra
• http://openjdk.java.net/projects/sumatra/
• https://github.com/aparapi/aparapi
What About Compiling to GPU?
• Fundamental problem
• JVM emulates a traditional CPU
• Probably a bad general solution fit
• Too many differences
• Reminds me of bad ORM abstractions
• Seems to be simplifying, actually making things horrible
• What is the purpose?
• Lots of fast parallel data processing
• IBM inline GPU
• https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.
0/com.ibm.java.lnx.80.doc/diag/understanding/gpu_jit.html
Cloud Execution Options
• AWS…
• Dedicated cloud ”GPU” systems
• GPUs with no… graphics output
• https://aws.amazon.com/ec2/elastic-gpus/
• Or… use higher level APIs focused on task
• https://cloud.google.com/gpu/
• Complicated math to figure out approach
• Data transfer costs
• For learning, check out already uploaded public data sets
• Pricing is impacted by things like cyrptomining
Some additional notes
•https://skillsmatter.com/skillscasts/8457-java-
gpu-all-you-need-to-know
JDK 10
•https://dzone.com/articles/109-new-features-in-
jdk-
10?edition=366203&utm_source=Daily%20Dige
st&utm_medium=email&utm_campaign=Daily
%20Digest%202018-03-05
Cloud Qubit Computing

More Related Content

What's hot

SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
Nuxeo
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
jaxconf
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
Erik Osterman
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
philipjting
 

What's hot (20)

Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire RoadmapsRed Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
Red Hat Summit 2015 : Drools, jBPM and UberFire Roadmaps
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case Study
 
Respawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game developmentRespawn 2015: Chimera Entertainment - A decade of game development
Respawn 2015: Chimera Entertainment - A decade of game development
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
 
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS
 
Building Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on AzureBuilding Mobile Web Apps with jQM and Cordova on Azure
Building Mobile Web Apps with jQM and Cordova on Azure
 
RavenDB in the wild
RavenDB in the wildRavenDB in the wild
RavenDB in the wild
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Architecture - why so serious?
Architecture - why so serious?Architecture - why so serious?
Architecture - why so serious?
 
How to write a web framework
How to write a web frameworkHow to write a web framework
How to write a web framework
 
DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1
 
DevOps for Scala
DevOps for ScalaDevOps for Scala
DevOps for Scala
 
The economies of scaling software - Abdel Remani
The economies of scaling software - Abdel RemaniThe economies of scaling software - Abdel Remani
The economies of scaling software - Abdel Remani
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approach
 
Techtalk#6: NodeJs: pitfalls (based on game project)
Techtalk#6: NodeJs: pitfalls (based on game project)Techtalk#6: NodeJs: pitfalls (based on game project)
Techtalk#6: NodeJs: pitfalls (based on game project)
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
 

Similar to SeaJUG 5 15-2018

Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
Ruslan Meshenberg
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Patrick Chanezon
 

Similar to SeaJUG 5 15-2018 (20)

Stackato
StackatoStackato
Stackato
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
GraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdfGraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdf
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop"Portrait of the developer as The Artist" Lockheed Architect Workshop
"Portrait of the developer as The Artist" Lockheed Architect Workshop
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Google web toolkit gwt training
Google web toolkit gwt trainingGoogle web toolkit gwt training
Google web toolkit gwt training
 

More from Will Iverson

Decisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile WebDecisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile Web
Will Iverson
 
SeaJUG May 2012 mybatis
SeaJUG May 2012 mybatisSeaJUG May 2012 mybatis
SeaJUG May 2012 mybatis
Will Iverson
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2
Will Iverson
 

More from Will Iverson (12)

Java CMS 2015
Java CMS 2015Java CMS 2015
Java CMS 2015
 
Decisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile WebDecisions, Decisions: Native to Mobile Web
Decisions, Decisions: Native to Mobile Web
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013
 
QA Lab in the Cloud
QA Lab in the CloudQA Lab in the Cloud
QA Lab in the Cloud
 
SeaJUG May 2012 mybatis
SeaJUG May 2012 mybatisSeaJUG May 2012 mybatis
SeaJUG May 2012 mybatis
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Introduction to Kanban
Introduction to KanbanIntroduction to Kanban
Introduction to Kanban
 
Practical maven-slides 2
Practical maven-slides 2Practical maven-slides 2
Practical maven-slides 2
 
Software Internationalization Crash Course
Software Internationalization Crash CourseSoftware Internationalization Crash Course
Software Internationalization Crash Course
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
Java Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky ProblemJava Tools and Techniques for Solving Tricky Problem
Java Tools and Techniques for Solving Tricky Problem
 

Recently uploaded

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
vu2urc
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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?
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

SeaJUG 5 15-2018

Editor's Notes

  1. CPU Introduced Focus on simple integer processing Floating point added later For a brief time, floating point coprocessors Simple single threaded model Multi-threading “hacked” in later GPU introduced Lots and lots of transistors Unlike CPU, GPU just keeps adding cores CPU, multithreading as afterthought GPU, multicore as… uhh… core. Totally different programming model Future History Specialized, different dev model CPU, GPU, Q-Bit…?
  2. Key points Drivers are a lot more complicated than simple memory mapping and event triggers Effectively, operating systems, compilers, support for multiple APIs Huge variety in capabilities, including specialist support for various image and data formats This is why an NVIDIA driver update may weigh in at 500MB – closer to a giant OS, with lots and lots of legacy system support Drivers appear to create their own IR format for the various supported APIs, which is then processed by the video card Easy to imagine tweaking hardware for different use cases. For example, no need for the video output for CPU only tasks Also easy to imagine tweaking for different uses. For example, less memory and more processing for AI, crypto Leaky abstraction – those blue arrows are (relatively) slow bus movement. Still wicked, wicked fast but (relatively) slow
  3. libgdx/gdx/src/com/badlogic/gdx/graphics/g3d/shaders/depth.fragment.glsl libgdx/gdx/src/com/badlogic/gdx/graphics/g3d/shaders/default.vertex.glsl