Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature ideas #205

Open
s-trinh opened this issue Mar 28, 2022 · 1 comment
Open

Feature ideas #205

s-trinh opened this issue Mar 28, 2022 · 1 comment

Comments

@s-trinh
Copy link
Contributor

s-trinh commented Mar 28, 2022

Some ideas, on top of my head.

Simd modules

We are using Simd to accelerate some core image processing functions (e.g. color conversion, image resizing, ...) because:

  • it is highly optimized,
  • it provides fallback to regular code,
  • it is optimized for x86 and ARM, the architectures we are considering.

What would be great:

  • to be able to customize the building of the Simd lib:
    • that is, using CMake (what we are using),
    • be able to disable the build of AVX-512 (I believe is still marginal for regular CPU and reduces the CPU frequency to avoid overheating?)
    • be able to only enable certain modules, e.g. color conversion, image resizing, ... to avoid long build time and big library size
  • to have a better files architecture, something like:
src
    Simd
        Color conversion
            ARM
            x86
            [...]
        Image resize
            ARM
            x86
            [...]
        [...]
  • to essentially avoid long files structure

Other ideas

  • automatically remove trailing whitespaces before commiting (e.g. using something like Github pre-commit hook?)
  • automatic testing using Github actions?
@ermig1979
Copy link
Owner

Hi! Thank you for your suggestions.

I want to note that there are several cmake options in prj/cmake/CMakeLists.txt which can reduce compilation time:

option(SIMD_AVX512 "AVX-512 (AVX-512F, AVX-512CD, AVX-512VL, AVX-512DQ, AVX-512BW) enable" ON)
option(SIMD_AVX512VNNI "AVX-512-VNNI enable" ON)
option(SIMD_TEST "Test framework enable" ON)
option(SIMD_SYNET "Synet optimizations enable" ON)
option(SIMD_INT8_DEBUG "Synet INT8 debug enable" OFF)

I would recommend to switch off them and you will see radical reducing of compilation time!

As to changing of project structure I have simular plans but them have low prority.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants