intel / intel/torch-xpu-ops

[release/2.14] [XPU][upstream_ut][COW] Fix materialization in remaining TestCompositeComplianceXPU tests

Open
#2,919 3 comments 0 reactions 1 assignee Claimed by @gplutop7 View on GitHub
ut_upstream
Dominant language
Python
Stars
113
Forks
128
Avg merge
5d 9h
Merged PRs (30d)
112

Description

### 🐛 Describe the bug

Split from: #2248

This issue tracks COW-related materialization failures on XPU backend.

## Affected tests (materialization-related)

- TestCompositeComplianceXPU.test_cow_input___rmatmul___xpu_float32
- TestCompositeComplianceXPU.test_cow_input_addbmm_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_addmm_decomposed_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_addmm_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_addmv_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_addr_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_baddbmm_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_bmm_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_cdist_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_cholesky_inverse_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_cholesky_solve_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_cholesky_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_einsum_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_cholesky_ex_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_cholesky_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_householder_product_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_inv_ex_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_inv_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lstsq_grad_oriented_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lstsq_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lu_factor_ex_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lu_factor_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lu_solve_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_lu_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_matrix_power_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_multi_dot_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_pinv_hermitian_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_pinv_singular_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_pinv_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_qr_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_svd_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_linalg_tensorinv_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_lu_solve_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_lu_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_matmul_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_mm_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_mv_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_bilinear_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv1d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv2d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv3d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv_transpose1d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv_transpose2d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_conv_transpose3d_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_cross_entropy_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_linear_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_multi_head_attention_forward_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_nn_functional_scaled_dot_product_attention_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_ormqr_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_pca_lowrank_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_pinverse_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_qr_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_svd_lowrank_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_svd_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_tensordot_xpu_float32
- TestCompositeComplianceXPU.test_cow_input_topk_xpu_float32

## Problem

These failures are caused by unintended tensor materialization
triggered by mutable pointer access and incorrect RO/RW semantics.

## Goal

- eliminate unintended materialization
- enforce correct RO vs RW semantics
- pass COW compliance tests without skipping

## Previous attempts

Initial fixes and investigation were done in:

- https://github.com/pytorch/pytorch/pull/174374
- https://github.com/intel/torch-xpu-ops/pull/2857
- https://github.com/intel/torch-xpu-ops/pull/2865

These PRs introduced RO/RW wrapper adjustments and reduced
unintended materialization in several kernels.

However, a complete solution depends on proper constant pointer
support in oneDNN.

### Versions

Resolution of remaining materialization issues depends on oneDNN providing
an interface that supports constant (read-only) pointers.

The SH team has already submitted a JIRA to oneDNN regarding this.

We are currently waiting for oneDNN to introduce a const-pointer–aware
API (or provide an official recommendation), after which we can revisit
and finalize the COW cleanup on XPU.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.