Skip to content

Single pass Forward TX for AVX optimization#101

Merged
kpchoi merged 5 commits intomainfrom
single_pass_AVX_Fwd_Tx
Jun 9, 2025
Merged

Single pass Forward TX for AVX optimization#101
kpchoi merged 5 commits intomainfrom
single_pass_AVX_Fwd_Tx

Conversation

@subhrajitm20
Copy link
Collaborator

The two-pass forward TX is optimized into single-pass by merging 2 passes in AVX. The merging is done in a similar way as that of earlier inverse TX optimization. Encoder profiling on test sequences shows an average ~3% speed-up on Linux platform under single and multi (up to 4) threading scenario.

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
@subhrajitm20 subhrajitm20 requested review from kpchoi and mss-park June 4, 2025 12:19
Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
@subhrajitm20
Copy link
Collaborator Author

Added a commit to ensure ARM_NEON compatibility

src/oapv.c Outdated
ctx->fn_itx = oapv_tbl_fn_itx;
ctx->fn_itx_adj = oapv_tbl_fn_itx_adj;
ctx->fn_txb = oapv_tbl_fn_tx;
ctx->fn_txb_part = oapv_tbl_fn_tx_part;
Copy link
Collaborator

Choose a reason for hiding this comment

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

ctx->fn_txb_part doesn't seem to be called anywhere.
Is this required?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Removed it in the latest commit.

Comment on lines 98 to 103
const oapv_fn_tx_part_t oapv_tbl_fn_txb_part_avx[2] =
{
oapv_tx_part_avx,
NULL
};

Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't know whether this structure is actually used.
fn_tx_part_t variable is not called anwhere...

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes it is unused. Thus removing it.

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
Copy link
Collaborator

@kpchoi kpchoi left a comment

Choose a reason for hiding this comment

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

LGTM

@kpchoi kpchoi merged commit e0ec2e8 into main Jun 9, 2025
5 checks passed
alejandro-arango-epicgames pushed a commit to alejandro-arango-epicgames/openapv that referenced this pull request Sep 29, 2025
…n#101)

* function pointer updates

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>

* single pass Fwd Tx C-code update

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>

* single pass Fwd Tx AVX-code update

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>

* single pass Fwd Tx ARM_Neon-code update

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>

* remove unused code

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>

---------

Signed-off-by: subhrajitm20 <2003subhrajit@gmail.com>
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

Successfully merging this pull request may close these issues.

2 participants