we found that CUDA’s memory allocator and even std::malloc introduced signiﬁcant overhead
into our application—over a 2x slowdown from using std::malloc in some cases. This is because
both cudaMalloc andstd::malloc forward very large allocations to the operating system or GPU
driver to update the system page tables. This is a good optimization for systems running multiple
applications, all sharing memory resources, but editing page tables is pure overhead for our system
where nodes are dedicated entirely to running a single model. To get around this limitation, we
wrote our own memory allocator for both CPU and GPU allocations. Our implementation follows
the approach of the last level shared allocator in jemalloc: all allocations are carved out of contiguous memory blocks using the buddy algorithm [34]. To avoid fragmentation, we preallocate all of
GPU memory at the start of training and subdivide individual allocations from this block. Similarly, we set the CPU memory block size that we forward to mmap to be substantially larger than
std::malloc , at 12GB.
14
Dataset Speech Type Hours
WSJ read 80
Switchboard conversational 300
Fisher conversational 2000
LibriSpeech read 960
Baidu read 5000
Baidu mixed 3600
Total 11940
We show that an end-to-end deep learning approach can be used to recognize
either English or Mandarin Chinese speech--two vastly different languages.
Because it replaces entire pipelines of hand-engineered components with neural
networks, end-to-end learning allows us to handle a diverse variety of speech
including noisy environments, accents and different languages. Key to our
approach is our application of HPC techniques, resulting in a 7x speedup over
our previous system. Because of this efficiency, experiments that previously
took weeks now run in days. This enables us to iterate more quickly to identify
superior architectures and algorithms. As a result, in several cases, our
system is competitive with the transcription of human workers when benchmarked
on standard datasets. Finally, using a technique called Batch Dispatch with
GPUs in the data center, we show that our system can be inexpensively deployed
in an online setting, delivering low latency when serving users at scale.
Dario Amodei Rishita Anubhai Eric Battenberg Carl Case Jared Casper Bryan Catanzaro Jingdong Chen Mike Chrzanowski Adam Coates Greg Diamos Erich Elsen Jesse Engel Linxi Fan Christopher Fougner Tony Han Awni Hannun Billy Jun Patrick LeGresley Libby Lin Sharan Narang Andrew Ng Sherjil Ozair Ryan Prenger Jonathan Raiman Sanjeev Satheesh David Seetapun Shubho Sengupta Yi Wang Zhiqian Wang Chong Wang Bo Xiao Dani Yogatama Jun Zhan Zhenyao Zhu