Skip to content
Snippets Groups Projects

L1: fix pseudo vectors

Merged Sergey Gorbunov requested to merge se.gorbunov/cbmroot:L1ScalarMode into master

Fix L1 tracker for non-SSE mode with pseudo-sse-vectors of 4 floats

Merge request reports

Merge request pipeline #18431 passed

Merge request pipeline passed for 2eb90d04

Merged by Sergey GorbunovSergey Gorbunov 2 years ago (Aug 24, 2022 6:11am UTC)

Loading

Pipeline #18432 passed

Pipeline passed for 2eb90d04 on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Sergey Gorbunov requested review from @s.zharko

    requested review from @s.zharko

  • Sergey Gorbunov enabled an automatic merge when the pipeline for 2eb90d04 succeeds

    enabled an automatic merge when the pipeline for 2eb90d04 succeeds

  • Dear @se.gorbunov, @v.akishina,

    you have been identified as code owner of at least one file which was changed with this merge request.

    Please check the changes and approve them or request changes.

  • @se.gorbunov,

    after looking again in the SIMD implementation I understood that you use 4 float values in parallel or 4 float values sequential when using the pseudo vector as fallback.

    If I am correct the width of the registers is meanwhile 256 or even 512 bit which you can't use with your implementation. Therefore I would propose to switch to Vc which uses all the available functionality.

  • @f.uhlig, yes, we need to switch to Vc. Maybe I should try to do it now.. The thing is, I want to test our KF mathematics in double precision. I don"t know what is faster - to rewrite first everything to Vc and then use Vc with double, or to reanimate our pseudo-sse code..

  • @se.gorbunov,

    I can't answer what will be faster. Since you internally use fvec which is a typedef you maybe can hide also the Vc internals behind a typedef as well. Or do you need the explicit knowledge about the internal structure of fvec when you use it?

  • @f.uhlig, one can not hide Vc behind our fvec interface since we use bit operatons as masks. In Vc bit operations do not exist, they have their masks and special syntax for the masked operations. So the use of vc needs some code rewriting. I'm trying it now, maybe it will be not complicated.

  • @se.gorbunov,

    before you start a huge work to rewrite the code, we should discuss the issue with Matthias Kretz. He told me in some private communication not to use Vc any longer but try to use std::experimental::simd which is already part of the latest gcc compilers. Since this is something we can't use everywhere he offered also some help o get things running. He is the maintainer of the code in libstdc++ (part of gcc) and is interested in real use cases to improve the code.

Please register or sign in to reply
Loading