Our guild didn’t start raiding until nine at night.
People had jobs. People had kids. You went to work, came home, put your children to bed, and then logged in to try to kill something enormous with a bunch of other people who also had to work in the morning.
Nicole and I had a young daughter. A guild that ran on Pacific time and started late made that possible for us.
The plan was to finish around one.
Raids did not give a fuck about the plan.
There was always another attempt. You had already spent the evening getting there, figuring out what went wrong, trying to do it better. Once you thought you were close, one more attempt was easy to justify.
And the last thing you wanted was to let everybody down because your computer couldn’t keep up.
World of Warcraft launched in November 2004. The original game had raids with forty people. Forty characters, everybody moving, spells going off, effects all over the screen. It was a hell of a thing to watch. I wanted our computers to handle it.
So I kept studying video cards.
Dell, Gateway, Micron. You could compare systems, choose components, work out how much computer you could afford. We bought Dells because we could configure them with good graphics cards. Then we started raiding, wanted more performance, and upgraded again.
This was something Nicole and I loved doing together. I wanted her to have a good experience, and I was willing to learn what it took to make that happen.
ATI and NVIDIA were competing for our money, and I followed both.
Some people followed them like fucking religions.
You could get the same kind of argument over a graphics card that you got over Xbox and PlayStation. People had picked a side. Their company’s good result was a victory. The other company’s good result required an explanation.
I switched back and forth. If ATI had the best bang for the buck when I was buying, I bought ATI. If NVIDIA did, I bought NVIDIA.
I wanted to know which card would run our games well for the money we had. A preference lasted until a better option came along.
Apparently that was insufficient commitment to the cause.
We do this everywhere. Find a tribe, learn its arguments, start defending it. Pretty soon somebody can show us something useful and we get pissed off because it came from the wrong side.
By then, I had spent years arguing with my computer about something else.
Windows.
I hated Windows 3.1. I was unhappy with Windows 95. Windows 98 didn’t win me over either. On my machines, Windows felt like something taking resources away from the things I wanted to do.
I could operate in DOS. Things felt clean. I understood where I was and what I was doing. When something went wrong, I went back into DOS to fix it.
Everybody was excited about the new interface. I wanted my fucking computer to run.
Windows survived my disapproval.
It also became an important part of the gaming market I loved. Microsoft released its first DirectX development kit in 1995 and shipped Direct3D in June 1996. Those tools helped developers put graphics hardware to work in increasingly ambitious Windows games.
Looking back, I can see how the appetite for graphical software and better games helped keep the hardware moving. At the time, I was dealing with the next thing that needed more power.
What I didn’t know was how much other people were beginning to get out of the same kind of hardware.
A graphics processing unit, a GPU, does an enormous amount of repeated mathematics to turn a game into an image. It can apply similar operations to many pieces of data at once. That ability to work in parallel is part of what makes it so useful.
Researchers recognized that some scientific calculations could use that ability, too. The challenge was finding practical ways to give the graphics processor those other jobs.
At Stanford, Ian Buck and his colleagues developed BrookGPU. Their 2004 paper showed a way to run general calculations on graphics hardware.
They tested ATI and NVIDIA cards. In several of their tests, ATI did better.
There’s a useful fact for the holy war.
Buck joined NVIDIA in 2004. His work at Stanford helped lay the groundwork for CUDA, NVIDIA’s platform for computing on its GPUs.
Other researchers were finding uses for the cards, too. In 2006, Folding@home, the project led by Stanford’s Vijay Pande, released its first GPU client. Volunteers could contribute their graphics processors to simulations of proteins and their behavior.
The card that helped run a game could also help investigate a biological problem.
Meanwhile, the companies kept moving. AMD completed its acquisition of ATI in October 2006. NVIDIA introduced the GeForce 8800 generation late that year, with a unified design that could assign its programmable processors different kinds of graphics work.
At home, we had another expansion to play.
The Burning Crusade arrived on January 16, 2007. Its new raids used groups of ten or twenty-five. The groups got smaller. I still wanted our computers to keep up.
One month later, on February 16, NVIDIA released the public beta of CUDA’s development tools.
Through an extension of the familiar C programming language, CUDA gave programmers a more direct way to use NVIDIA GPUs for calculations beyond graphics. It supported the GeForce 8800 generation.
Researchers could buy hardware made for a large consumer market and use these new tools to put it to work on their own problems.
I was following the cards. I had no idea how this would connect to AI.
Wrath of the Lich King arrived in November 2008. That December, the Khronos Group released OpenCL 1.0, an open standard for programming across different kinds of processors, including GPUs.
Then, in 2009, Stanford researchers Rajat Raina, Anand Madhavan, and Andrew Ng published a paper about using graphics processors to train learning models.
Their hardware included an NVIDIA GeForce GTX 280.
A consumer graphics card.
For some large models, their GPU code ran up to roughly seventy times faster than their dual-core CPU implementation. One training job went from several weeks to about a day.
Think about what that lets somebody do.
An experiment finishes. You examine the result. You change something and try again. When the next result takes a day instead of weeks, you have room to explore more ideas.
The speed changes the work you can attempt.
Researchers also needed examples to learn from. ImageNet, introduced in a 2009 paper by Jia Deng, Fei-Fei Li, and their collaborators, provided a large collection of categorized images for training and evaluating computer-vision systems.
People had to collect the pictures and label what was in them. That work mattered alongside the hardware and the programming.
Our games kept growing, too. By October 2010, Blizzard reported more than twelve million WoW subscribers. Cataclysm arrived that December.
Twelve million subscribers. People making room in their lives to be in that world.
For us, that meant getting our daughter to bed and spending some of the evening with friends. When I read about the size of that audience now, I think about all the other houses where people were trying to do the same thing.
Gaming helped sustain a huge market for graphics hardware. People wanted better experiences, the companies competed to provide them, and researchers kept finding ways to use the resulting computing power.
In 2011, Dan Cireșan and his colleagues published work on fast GPU implementations of convolutional neural networks, learning systems particularly useful for images. Their work showed strong recognition results and substantial improvements in training speed.
Then came 2012.
Mists of Pandaria, WoW’s fourth expansion, launched that September. That same year, Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton produced the image-recognition breakthrough we touched on in the first article.
AlexNet.
They trained their network on two NVIDIA GTX 580 graphics cards. It took roughly five to six days. Their entry beat the other competitors in that year’s ImageNet classification challenge by a wide margin.
Getting there took years of work: competition to make games look better, researchers finding new uses for the processors, programmers building tools, and people assembling and labeling the data.
When I listen to the arguments about AI now, I recognize some of those old graphics-card arguments. People pick their side, and every result becomes something to defend or explain away.
I want to understand what happened. Who did the work? What made it possible? Where did one useful discovery lead to another?
Following that history means giving people credit when the evidence supports it, whichever logo we happen to like.
I kept changing cards because I wanted our games to run better. I wanted Nicole to enjoy being there with me. I wanted to get through the raid without the machine becoming another problem.
The games kept me studying this hardware for years.
Now I’m learning what else it made possible.
EDW•