Comments (2)
@kasturedeeksha From my understanding, the number of blocks jcp.nb_ic_blocking
and jcp.nb_oc_blocking
are initialized with value 1
, meaning the data is initially not blocked. The values can be updated in some conditions, e.g. jcp.nb_ic_blocking
can be updated with value i
in line 2104 and jcp.nb_oc_blocking
can be updated with value best_nb_oc_blocking
in line 1197.
@msotoflo I see in the commit history that you updated the heuristic for nb_oc_blocking 4 years ago. Do you possibly have any suggestions for manually adjusting the values of jcp.nb_ic_blocking
and jcp.nb_oc_blocking
?
from onednn.
Hello @kasturedeeksha
There might be multiple reasons why these params were set to 1. Although primarily, depending on which direction the convolution is executed (e.g. forward vs backward propagation) is what kind of impact nb_ic_blocking or nb_oc_blocking will have. For forward direction, nb_oc_blocking
will allow loop unrolling on the output elements. The best value for this param is chosen in src/cpu/x64/jit_avx512_common_conv_kernel.cpp#L1197 while taking into account other factors. jcp.nb_ic_blocking
will do the same for backward propagation.
Additionally, I would like to point out that these are somewhat legacy JIT kernels. We now mostly depend on BRGeMM JIT Implementations to support the convolution primitive and give better performance.
Might I ask what is your interest in this specific implementation and what your approach is to running these primitives? We expect users to execute OneDNN primitives through the API and let OneDNN choose the best primitive implementation (as well as its internal parameters).
from onednn.
Related Issues (20)
- How scales work in oneDNN HOT 9
- Static builds with ONEDNN_VERBOSE=OFF produce undefined symbol: dnnl::impl::rt_mds2str HOT 1
- Builds with ONEDNN_ENABLE_MAX_CPU_ISA=OFF crash HOT 2
- accuracy issue in a graph conv test HOT 2
- create memory with tag::any,it crash HOT 3
- bibtex ref about oneDNN HOT 4
- Understand oneDNN graph compiler HOT 7
- Difference between BRGEMM in oneDNN and GEMM in openBLAS HOT 7
- Issue building oneDNN 3.4.4 with CLANG for ARM64 on Windows HOT 1
- cblass_gemm incorrect output HOT 2
- test_shuffle fails on aarch64 when BF16 data type is enabled. HOT 2
- [ACL] Potentially redundant check in `acl_init_conf` HOT 1
- Enable building oneDNN with MKL when integrated with PyTorch and IPEX via ideep HOT 4
- oneDNN 'Build from Source' doesn't work HOT 9
- Why are the convolutional inference results of OneDNN very different from the convolutional structure of pytorch? HOT 8
- How to disable USM feature for GPU plugin HOT 9
- running destructors before completion of a primitive HOT 7
- why the result of eltwise_hardswish is zero? HOT 8
- test_benchdnn_modeC_softmax_ci_cpu fails due to F16 accumulation HOT 2
- Check timings of assembly level instructions HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onednn.