Hi Jonas > Perhaps I am missing something, but if _possible_ just 100x slower to > use CPUs instead of GPUs, then I fail to recognize how it cannot be > reproduced, modified, and researched 100x slower. > > Quite interesting question you raise!
I can provide at least two data points: 1. The alexnet[1] paper said that "We trained the network for roughly 90 cycles through the training set of 1.2 million images, which took five to six days on two NVIDIA GTX 580 3GB GPUs." This is an old but very famous paper. In this paper, the deep neural network was trained on a public dataset named ImageNet[2]. For image classification purpose, the dataset provides 1000 catogories of images, and ships more than 100GB of pictures. ImageNet is a typical large dataset. Training networks on it requires expensive devices and takes a lot of time. As time goes by, the latest GPUs and software stack has reduced the network training time significantly, and the training time was reduced to less than half an hour. Nobody will train a neural network on ImageNet by CPU. CPU takes ridiculously long time, compared to GPU. 2. A very simple and reproducible CPU/GPU performance comparison. This snippet imports a pretrained neural network from another famous work, and calculates prediction result for 50 fake input images. │ import torch as th │ import torchvision as vision │ import time │ │ net = vision.models.vgg19(pretrained=True) │ batch = th.rand((50, 3, 224, 224)) │ net, batch = net.float(), batch.float() │ │ t = time.time() │ net(batch) │ print('CPU version:', time.time() - t) │ │ net, batch = net.cuda(), batch.cuda() │ t = time.time() │ net(batch) │ print('CUDA versoin', time.time() - t) My CPU is Intel(R) Core(TM) i7-6900K CPU @ 3.20GHz, running with MKL My GPU is Nvidia TITAN X (Pascal), running with CUDA9.1 and cuDNN CPU version: 30.960017681121826 CUDA versoin 0.17571759223937988 CUDA version is 176x faster than CPU. Nobody will train a neural network on big dataset by CPU. CPU takes ridiculously long time, compared to GPU. (The framework used is PyTorch[5], vgg19 net comes from [4]) [1] https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf [2] https://image-net.org/ [3] oops, I think I lost the link to the mentioned paper [4] http://www.robots.ox.ac.uk/%7Evgg/research/very_deep/ [5] https://pytorch.org/