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

[GPU] Enabled uint8_t input for ArgMinMax ensuring TF test compliance #27971

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

arshadlab
Copy link

Details:

This update introduces support for the uint8_t data type in the argminmax implementation on the cldnn path, which was previously lacking. Specifically, for the TopKV2 test case, the OpenVino IR optimization reduced the model to an argminmax primitive that did not support uint8_t inputs, causing failures. With the new uint8_t support for argminmax and the addition of a kernel, the test now passes. An OpenVino unit test has been added to verify uint8_t data type handling, with test inputs consisting of non-negative values.

Tickets:

@arshadlab arshadlab requested review from a team as code owners December 9, 2024 00:04
@github-actions github-actions bot added category: GPU OpenVINO GPU plugin category: TF FE OpenVINO TensorFlow FrontEnd labels Dec 9, 2024
@sys-openvino-ci sys-openvino-ci added the ExternalIntelPR External contributor from Intel label Dec 9, 2024
@vladimir-paramuzov
Copy link
Contributor

build_jenkins

Copy link
Contributor

@rkazants rkazants left a comment

Choose a reason for hiding this comment

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

From TF FE perspective, looks good. Thanks

@arshadlab
Copy link
Author

From TF FE perspective, looks good. Thanks
@rkazants
ArgMinMax currently supports F16,F32,INT8,INT32 input types. UINT8 is now being added. I wonder if addition of INT16 and UINT16 make sense or it will be unnecessary and customer wouldn't be using them. ?

@vladimir-paramuzov
Copy link
Contributor

@arshadlab
Please fix the windows build errors:

2024-12-09T06:15:25.9471488Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(60): error C2065: 'u_int8_t': undeclared identifier
2024-12-09T06:15:25.9473021Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(60): error C2923: 'arg_max_input_types': 'u_int8_t' is not a valid template type argument for parameter 'DataType'
2024-12-09T06:15:25.9474542Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(60): note: see declaration of 'u_int8_t'
2024-12-09T06:15:25.9476012Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(61): error C2065: 'u_int8_t': undeclared identifier
2024-12-09T06:15:25.9477503Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(61): error C2923: 'arg_max_input_types': 'u_int8_t' is not a valid template type argument for parameter 'DataType'
2024-12-09T06:15:25.9478974Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(61): note: see declaration of 'u_int8_t'
2024-12-09T06:15:25.9480238Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(62): error C2065: 'u_int8_t': undeclared identifier
2024-12-09T06:15:25.9481743Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(62): error C2923: 'arg_max_input_types': 'u_int8_t' is not a valid template type argument for parameter 'DataType'
2024-12-09T06:15:25.9483223Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(62): note: see declaration of 'u_int8_t'
2024-12-09T06:15:25.9484968Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(60): error C3203: 'arg_max_input_types': unspecialized class template can't be used as a template argument for template parameter 'T18', expected a real type
2024-12-09T06:15:25.9487142Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(61): error C3203: 'arg_max_input_types': unspecialized class template can't be used as a template argument for template parameter 'T19', expected a real type
2024-12-09T06:15:25.9489547Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(62): error C3203: 'arg_max_input_types': unspecialized class template can't be used as a template argument for template parameter 'T20', expected a real type
2024-12-09T06:15:25.9491439Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(71): error C2065: 'u_int8_t': undeclared identifier
2024-12-09T06:15:25.9492942Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(71): error C2923: 'arg_max_input_types': 'u_int8_t' is not a valid template type argument for parameter 'DataType'
2024-12-09T06:15:25.9494445Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(71): note: see declaration of 'u_int8_t'
2024-12-09T06:15:25.9496166Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(71): error C3203: 'arg_max_input_types': unspecialized class template can't be used as a template argument for template parameter 'T', expected a real type
2024-12-09T06:15:25.9498206Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(70): error C3211: 'is_u_int8_input<int>': explicit specialization is using partial specialization syntax, use template <> instead
2024-12-09T06:15:26.2486724Z C:\actions-runner\_work\openvino\openvino\openvino\src\plugins\intel_gpu\tests\unit\test_cases\arg_max_gpu_test.cpp(71): note: see declaration of 'is_u_int8_input<int>'

Details:
This update introduces support for the uint8_t data type in the argminmax
implementation on the cldnn path, which was previously lacking.
Specifically, for the TopKV2 test case, the OpenVino IR optimization
reduced the model to an argminmax primitive that did not support uint8_t
inputs, causing failures. With the new uint8_t support for argminmax and
the addition of a kernel, the test now passes. An OpenVino unit test has
been added to verify uint8_t data type handling, with test inputs
consisting of non-negative values.

Tickets:
  - CVS-153078
  - CVS-156587

Signed-off-by: Arshad Mehmood <[email protected]>
@arshadlab arshadlab force-pushed the uint_8_arg_max_min_support branch from f28f69a to a12a82d Compare December 16, 2024 09:34
@arshadlab arshadlab closed this Dec 16, 2024
@arshadlab arshadlab reopened this Dec 16, 2024
@arshadlab
Copy link
Author

Updated PR with the fix for Windows build. changed u_int8_t to uint8_t

@vladimir-paramuzov
Copy link
Contributor

build_jenkins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: GPU OpenVINO GPU plugin category: TF FE OpenVINO TensorFlow FrontEnd ExternalIntelPR External contributor from Intel
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants