Skip to content

[CPU][RV64] implement vectorized im2col+GEMM convolution with fallback#35949

Open
strelkovkm wants to merge 19 commits into
openvinotoolkit:masterfrom
strelkovkm:dev_conv_rv64
Open

[CPU][RV64] implement vectorized im2col+GEMM convolution with fallback#35949
strelkovkm wants to merge 19 commits into
openvinotoolkit:masterfrom
strelkovkm:dev_conv_rv64

Conversation

@strelkovkm
Copy link
Copy Markdown

Details:

  • Optimized the convolution execution paths within the RISC-V plugin stack by implementing a vectorized im2col + GEMM approach using RISC-V Vector (RVV) intrinsics. (oneDNN)
  • Updated the custom gemm/ref emitter dispatch logic to handle advanced layer configurations properly for target RISC-V CPU pipelines.

Tickets:

  • N/A

AI Assistance:

  • AI assistance used: yes
  • An LLM assistant was used to support code verification, including code quality checks, static structure review, and validation of potential optimization bottlenecks. AI was also utilized to build a local Python Flask dashboard for our end-to-end testing environment.

@strelkovkm strelkovkm requested review from a team as code owners May 16, 2026 07:00
@strelkovkm strelkovkm requested review from mlukasze and removed request for a team May 16, 2026 07:00
@github-actions github-actions Bot added the category: IE Tests OpenVINO Test: plugins and common label May 16, 2026
@github-actions github-actions Bot added category: GPU OpenVINO GPU plugin category: CPU OpenVINO CPU plugin category: Python API OpenVINO Python bindings category: dependency_changes Pull requests that update a dependency file no-match-files category: NPU OpenVINO NPU plugin labels May 16, 2026
@sys-openvino-ci sys-openvino-ci added the ExternalPR External contributor label May 16, 2026
Comment thread thirdparty/gtest/gtest
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, get rid of all dependency updates, except onednn (CPU only)

Comment thread .gitignore Outdated
/tools/commit_slider/slider_cache/*
/src/plugins/intel_cpu/thirdparty/ComputeLibrary/build/arm_compute_version.embed
.github/GITHUB_OUTPUT

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please, revert here as well

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adjusts Intel CPU plugin convolution implementation registration for RISC-V and adds root-level ignore patterns for local artifacts.

Changes:

  • Adds a RISC-V convolution_dnnl_ncsp_ncsp executor registration before the existing ncsp reference-like entry.
  • Keeps quantized and depthwise-post-op configurations unsupported for the new RISC-V DNNL ncsp path.
  • Adds several root-level directories to .gitignore.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

File Description
src/plugins/intel_cpu/src/nodes/executors/convolution_implementations.cpp Adds a RISC-V DNNL ncsp convolution implementation entry.
.gitignore Adds ignores for local model/report/package-style directories.

Comment on lines +279 to +283
OV_CPU_INSTANCE_RISCV64(
"convolution_dnnl_ncsp_ncsp", ExecutorType::Dnnl, OperationType::Convolution,
// supports
[](const ConvConfig& config, const MemoryFormatFilter& memoryFormatFilter) -> bool {
VERIFY(!isQuantized(config), UNSUPPORTED_SRC_PRECISIONS);
Comment on lines +291 to +293
CreateOptimalConfigDefault{{LayoutType::ncsp, LayoutType::ncsp, LayoutType::ncsp, LayoutType::ncsp}},
AcceptsAnyShape<ConvAttrs>,
CreateDnnlDefault<DnnlConvolutionPrimitive, ConvAttrs>{}
@aobolensk
Copy link
Copy Markdown
Contributor

Please, mention openvinotoolkit/oneDNN#312 in the PR description as a dependency

@strelkovkm strelkovkm changed the title [CPU][RISC-V] implement vectorized im2col+GEMM convolution with fallback [CPU][RV64] implement vectorized im2col+GEMM convolution with fallback May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category: CPU OpenVINO CPU plugin category: dependency_changes Pull requests that update a dependency file category: GPU OpenVINO GPU plugin category: IE Tests OpenVINO Test: plugins and common category: NPU OpenVINO NPU plugin category: Python API OpenVINO Python bindings ExternalPR External contributor no-match-files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants