I know ncnn has been sped up by using NEON for ARM platform,I wonder whether ncnn has been optimized by using SSE/AVX for x86 cpu platform? thanks!
Not yet. Recently, I tried to transform some layers of ncnn into mkldnn implementations, which accelerated 5-10 times.
@ran130683,
do you have plan to open source your work so everyone can continue to contribute to make it more complete?
I just started looking into ncnn, so I might be wrong. But from what I can tell, there are already files and functions in place for x86 specific convolution layers (see /src/layer/x86/convolution_.h). I did not find any sse stuff in those files though. But it should not be too hard to rework those functions using sse intrinsics, maybe using the neon stuff in /src/layer/arm/convolution_.h as a guideline.
This would obviously only give us the 1x1, 3x3, 5x5 convolutional layers. But those are the most computationally expensive layers anyways.
x86 codepath is not well optimized
using a recent modern compiler like vs2017 does help to gain faster speed
Most helpful comment
Not yet. Recently, I tried to transform some layers of ncnn into mkldnn implementations, which accelerated 5-10 times.