仕組みを学んでいると、すでに世の中に高速なConvolution処理が出回っていても、自前でもConvolution 処理を実装してみたくなりますよね(なりました)。 面白そうな論文「arXiv:1704.04428」の手法を真似て実装しました。 結果は... うん、まぁ... cudnn スゲぇなぁ を体感する事となりました......。 私の実装では、期待してたほどの処理速度には至りませんでしたが、資料をここにてまとめます。 なにかの参考になればと思い公開いたします。 背景 深層学習の理解を深めようと、自前で実装を行ってます。 Convolution 処理についても、理解を深めるため、自前で実装します。 cudnn 使えば イイじゃん なんですけども ソレはソレ。 Im2Col方式での実装を考えていましたが、(arXiv:1704.04428) Parallel Multi Chann
![高速な Convolution 処理を目指してみた。 Kn2Image方式 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/934ab98732b34885e4675cd6e1bcd89ed8457b10/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU5JUFCJTk4JUU5JTgwJTlGJUUzJTgxJUFBJTIwQ29udm9sdXRpb24lMjAlRTUlODclQTYlRTclOTAlODYlRTMlODIlOTIlRTclOUIlQUUlRTYlOEMlODclRTMlODElOTclRTMlODElQTYlRTMlODElQkYlRTMlODElOUYlRTMlODAlODIlRTMlODAlODBLbjJJbWFnZSVFNiU5NiVCOSVFNSVCQyU4RiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9ZjQ1Y2UyY2NkMzc3ZjQ3NzkwOTFmOWMzMzg0MGJjMGI%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0LXRrZDNhJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz05Yjc5OGRiYWRlM2RhODkyNDUxYzljZTYyYjExNTBlNA%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D189e4c8b46d1b3b7bd52e276904b2249)