Ncnn: Has ncnn ever been optimized by using SSE/AVX for x86 cpu platform?

Created on 22 Jun 2018  ·  4Comments  ·  Source: Tencent/ncnn

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!

Most helpful comment

Not yet. Recently, I tried to transform some layers of ncnn into mkldnn implementations, which accelerated 5-10 times.

All 4 comments

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Abel119 picture Abel119  ·  4Comments

makaaay picture makaaay  ·  4Comments

sbsb99 picture sbsb99  ·  4Comments

mychina75 picture mychina75  ·  4Comments

ghost picture ghost  ·  3Comments