Alex St. John

Formerly

alex-st-john

Presentation at Multicore World 2014

The Symbiotic relationship between game technology and Heterogeneous HPC

Alex St. John

In 1994 I wrote the following words in a pitch to Bill Gates for Microsoft to make consumer 3D graphics a strategic priority:

The battle of the 3D API on the console and under DOS is just beginning. With the opportunity to buy the most respected player, we can immediately draw huge attention from the entire game industry to our platform by effectively declaring the winner and demonstrating our commitment to pursuing this market. The likely impact on new title generation under Windows from such an announcement will have a revolutionary impact on the PC game industry.”

Several months later we acquired Rendermorphics, moved the entire team of British engineers to Redmond WA and created the Direct3D GAMING API which resulted in the massive growth of GPU companies like AMD and Nvidia and gave rise to the modern day general purpose programmable GPU used across the game industry for 3D entertainment applications and among researchers for scientific HPC applications.

The symbiotic relationship between gaming and scientific computing has been instrumental to the tremendous rapid innovation and production of powerful inexpensive GPU’s. In this presentation I will illustrate how intimately interdependent and complimentary the two applications for GPU power have been and will continue to be far into the foreseeable future.

—————————————————————————————————–

Keynote at Computing for SKA

The Revolutionary Impact of CUDA 6.0 on multicore programming

Alex St. John

——————-

CUDA 6.0 enables the CPU and GPU to simultaneously share access to the same memory. This seemingly trivial advance in multicore programming API’s may actually have a revolutionary impact on heterogeneous programming. Having been privileged to participate in Nvidia’s early access developer program for CUDA 6.0, I realized in the course of porting a large body of complex code to the new architecture that the new feature of shared memory support in CUDA 6.0 was not merely incremental but potentially revolutionary to the way large scale heterogeneous programs could be developed. In a body of sample code I recently released publicly, I demonstrated that with CUDA 6.0 it is now possible to create C++ objects that can compile and run on the CPU or GPU dynamically depending on which processors memory the same object resides in. This amazing new versatility in object oriented heterogeneous software development has dramatically altered my perspective on how to approach efficiently crafting large scale HPC applications. I will demonstrate why I believe that the introduction of this capability will revolutionize heterogeneous software development.

—————————————————————————————————-

Bio: http://www.alexstjohn.com/WP/bio/

Best known for his early work on gaming and role in creating the Direct3D API at Microsoft in the early 1990’s, Alex St. John later founded WildTangent Inc. -one of the world’s largest online game publishing companies, and became a technology columnist for leading computer enthusiast publications MaximumPC and CPU Magazine. His many exploits during the fast growth years at Microsoft are chronicled in various books including; Renegades of the Empire by Michael Drummond, Masters of Doom by David Kushner and Opening the Xbox by Dean Takahashi.

Prior to joining Microsoft St. John worked for a small U.K. Technology company called Harlequin Ltd. developing clones of Adobe’s then popular PostScript RIP technology for high end graphics publishing. He was recruited by Microsoft in 1992 at the age of 25 for his expertise in publishing technology to lead an effort to make Windows 95 competitive with Apple in graphics and high end desktop publishing, but his role quickly expanded to include all of Microsoft’s media strategy leading to the creation of the DirectX family of API’s for 2D and 3D graphics, streaming video, 3D sound, multiplayer API’s and haptic input devices and ultimately the DirectXbox. Today DirectX technology underlies all Microsoft Windows media capabilities and UI.

More recently (2009-2012) Alex St. John became CTO and President of one of the world’s largest social networks, Hi5.com, with over 60M MUU. Hi5.com quickly became the world’s 6th largest game network according to Comscore after Hi5.com cloned Facebook’s API’s and published hundreds of Facebook compatible social games to its massive audience.

St. John has over 22 technology patents granted or in process spanning a range of media delivery related technologies including streaming 3D graphics and games, compression, application patching and updating, digital rights management, virtual currency solutions, in-game advertising, artificial intelligence and for the streaming mapping technology used in Google Maps.

Today St. John enjoys writing and teaching about technology entrepreneurship and game technology and works with various educational institutions including Digipen, the University of Washington and CMU to develop educational curriculum related to these subjects. Having been raised in rural Alaska, St. John himself has little formal education and never graduated from high school, his only diploma is an honorary B.S. in Real-Time Simulation from Digipen awarded to him by Nintendo US founder, Minoru Arakawa for his lifetime contributions to gaming technology.

—————————————————————————————————-

Relevant blog articles on Alex St. John site worth referencing-

  • In the “Quantum Economics” category of my blog is a series of articles on a family of differential equations I solved that I believe describe large scale social virality on the Internet.  There are six equations forming a “compartmental model” closely related to the SEIR compartmental model in epidemiology but adapted for social networking based on the massive Hadoop analysis of 60MMU social network participants.  I used variations on this family of equations to capture a top 5 worldwide game audience on three separate occasions using entirely different strategies.  I’m proud of it because I believe that is an incredibly valuable set of equations with proven real world application that were the result of a massive analytics exercise on millions of live users.  The real-time use of these equations on live audiences also directly resulted in 3x-18x increases in revenue per user.

http://www.alexstjohn.com/WP/2013/02/19/modeling-game-monetization/

So they are a great example of large scale data analysis being used to “Discover” a valuable pattern which was then commercially applied in real-time to a massive live audience to dramatically increase revenues from that audience… The story of how these equations were found and applied commercially is a very interesting HPC story.

*The live math is modeled in Mathematica on my site and runs in a browser using the Mathematica CDF plugin so people can solve them in real-time on my web page for any set of parameter’s they want to try.

  • The GPU computing category on my blog contains several interesting articles specifically about GPU computing including most recently;

3 articles on CUDA 6.0 demonstrating how to create C++ objects that run on both the CPU and/or GPU without modification:

http://www.alexstjohn.com/WP/2014/01/30/genius-culminating-madness/

http://www.alexstjohn.com/WP/2014/01/30/unraveling-secrets-neutrinos/

http://www.alexstjohn.com/WP/2014/02/06/cuda-6-0-neutrino-1_1/

*This has HUGE implications for how you write HPC applications in my opinion.

There are several articles about how to mix graphics programming with CUDA GPU coding to get CUDA driving 3D graphics.

*How to mix CUDA with OpenGL

http://www.alexstjohn.com/WP/2013/12/25/cuda-christmas-tree/

*How to mix CUDA with DirectX

http://www.alexstjohn.com/WP/2012/12/20/my-first-blog-post/

There are also articles related to the DirectCompute API, Microsoft’s Parallel Patterns Library and AMP GPU API’s

  • Post by Mark Harris at Nvidia’s parallel forall blog referencing Alex St. John articles on CUDA 6.0 object design.

http://devblogs.nvidia.com/parallelforall/the-saint-porting-c-classes-cuda-unified-memory/