{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/diagonalwise-refactorization-an-efficient","title":"Diagonalwise Refactorization: An Efficient Training Method for Depthwise Convolutions","arxiv_id":"1803.09926","date":"2018-03-27","proceeding":null,"authors":["Zheng Qin","Zhaoning Zhang","Dongsheng Li","Yiming Zhang","Yuxing Peng"],"abstract":"Depthwise convolutions provide significant performance benefits owing to the\nreduction in both parameters and mult-adds. However, training depthwise\nconvolution layers with GPUs is slow in current deep learning frameworks\nbecause their implementations cannot fully utilize the GPU capacity. To address\nthis problem, in this paper we present an efficient method (called diagonalwise\nrefactorization) for accelerating the training of depthwise convolution layers.\nOur key idea is to rearrange the weight vectors of a depthwise convolution into\na large diagonal weight matrix so as to convert the depthwise convolution into\none single standard convolution, which is well supported by the cuDNN library\nthat is highly-optimized for GPU computations. We have implemented our training\nmethod in five popular deep learning frameworks. Evaluation results show that\nour proposed method gains $15.4\\times$ training speedup on Darknet, $8.4\\times$\non Caffe, $5.4\\times$ on PyTorch, $3.5\\times$ on MXNet, and $1.4\\times$ on\nTensorFlow, compared to their original implementations of depthwise\nconvolutions.","url_abs":"http://arxiv.org/abs/1803.09926v1","url_pdf":"http://arxiv.org/pdf/1803.09926v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"diagonalwise-refactorization-an-efficient","repo_url":"https://github.com/clavichord93/diagonalwise-refactorization-caffe","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null},{"paper_slug":"diagonalwise-refactorization-an-efficient","repo_url":"https://github.com/clavichord93/diagonalwise-refactorization-pytorch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"diagonalwise-refactorization-an-efficient","repo_url":"https://github.com/clavichord93/diagonalwise-refactorization-tensorflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":null}],"tasks":[{"task_slug":null,"task_name":"GPU"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"depthwise-convolution","method_name":"Depthwise Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}