Skip to content

Commit 9f0d848

Browse files
committed
+add AVX-512BW optimizations of class SynetConvolution16bNhwcSpecV1.
1 parent 2328668 commit 9f0d848

8 files changed

+552
-1
lines changed

Diff for: docs/2025.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ <h3 id="R149">May X, 2025 (version 6.1.149)</h3>
4040
<h4>Algorithms</h4>
4141
<h5>New features</h5>
4242
<ul>
43-
<li>Base implementation, SSE4.1, AVX2 optimizations of class SynetConvolution16bNhwcSpecV1.</li>
43+
<li>Base implementation, SSE4.1, AVX2, AVX-512BW optimizations of class SynetConvolution16bNhwcSpecV1.</li>
4444
</ul>
4545
<h5>Bug fixing</h5>
4646
<ul>

Diff for: prj/vs2019/Avx512bw.vcxproj

+1
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcDeptwise.cpp" />
9595
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcGemm.cpp" />
9696
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV0.cpp" />
97+
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV1.cpp" />
9798
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32f.cpp" />
9899
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32fDirectNchw.cpp" />
99100
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32fGemm.cpp" />

Diff for: prj/vs2019/Avx512bw.vcxproj.filters

+3
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,9 @@
412412
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV0.cpp">
413413
<Filter>Avx512bw</Filter>
414414
</ClCompile>
415+
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV1.cpp">
416+
<Filter>Avx512bw</Filter>
417+
</ClCompile>
415418
</ItemGroup>
416419
<ItemGroup>
417420
<Filter Include="Avx512bw">

Diff for: prj/vs2022/Avx512bw.vcxproj

+1
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcDeptwise.cpp" />
9595
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcGemm.cpp" />
9696
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV0.cpp" />
97+
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV1.cpp" />
9798
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32f.cpp" />
9899
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32fDirectNchw.cpp" />
99100
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution32fGemm.cpp" />

Diff for: prj/vs2022/Avx512bw.vcxproj.filters

+3
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,9 @@
412412
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV0.cpp">
413413
<Filter>Avx512bw</Filter>
414414
</ClCompile>
415+
<ClCompile Include="..\..\src\Simd\SimdAvx512bwSynetConvolution16bNhwcSpecV1.cpp">
416+
<Filter>Avx512bw</Filter>
417+
</ClCompile>
415418
</ItemGroup>
416419
<ItemGroup>
417420
<Filter Include="Avx512bw">

Diff for: src/Simd/SimdAvx512bwSynetConvolution16b.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ namespace Simd
3333
ConvParam param(batch, conv, compatibility);
3434
if (!param.Valid(SimdTensorData32f, SimdTensorData16b))
3535
return NULL;
36+
if (SynetConvolution16bNhwcSpecV1::Preferable(param))
37+
return new Avx512bw::SynetConvolution16bNhwcSpecV1(param);
3638
if (SynetConvolution16bNhwcSpecV0::Preferable(param))
3739
return new Avx512bw::SynetConvolution16bNhwcSpecV0(param);
3840
if (SynetConvolution16bNhwcGemm::Preferable(param))

Diff for: src/Simd/SimdAvx512bwSynetConvolution16bNhwcSpecV1.cpp

+534
Large diffs are not rendered by default.

Diff for: src/Simd/SimdSynetConvolution16b.h

+7
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,13 @@ namespace Simd
423423
virtual String Ext() const { return "Avx512bw"; }
424424
};
425425

426+
class SynetConvolution16bNhwcSpecV1 : public Avx2::SynetConvolution16bNhwcSpecV1
427+
{
428+
public:
429+
SynetConvolution16bNhwcSpecV1(const ConvParam& p);
430+
431+
virtual String Ext() const { return "Avx512bw"; }
432+
};
426433

427434
class SynetConvolution16bNhwcDepthwise : public Avx2::SynetConvolution16bNhwcDepthwise
428435
{

0 commit comments

Comments
 (0)