-
Notifications
You must be signed in to change notification settings - Fork 3k
Closed
Labels
Description
OpenVINO Version
2025.4.0
Operating System
Ubuntu 20.04 (LTS)
Device used for inference
GPU
Framework
None
Model used
No response
Issue description
When using the GPU plugin, the Convert operation from float16 to float64 produces incorrect values. The CPU plugin produces correct results.
Step-by-step reproduction
Minimal reproducer:
import numpy as np
import openvino as ov
import openvino.runtime.opset13 as ops
from openvino.runtime import Model
from openvino import Type
core = ov.Core()
f16_data = np.array([[4.2421875, 5.85546875]], dtype=np.float16)
const_f16 = ops.constant(f16_data)
convert_to_f64 = ops.convert(const_f16, Type.f64)
model = Model([convert_to_f64], [])
cpu_result = np.array(core.compile_model(model, "CPU")({})[0])
gpu_result = np.array(core.compile_model(model, "GPU")({})[0])
print(f"Input (f16): {f16_data}")
print(f"CPU (f64): {cpu_result}") # Correct: [[4.2421875, 5.85546875]]
print(f"GPU (f64): {gpu_result}") # Wrong: [[0.0, 2.26513672]]
Relevant log output
Input (f16): [[4.242 5.855]]
CPU (f64): [[4.2421875 5.85546875]]
GPU (f64): [[0. 2.26513672]]Issue submission checklist
- I'm reporting an issue. It's not a question.
- I checked the problem with the documentation, FAQ, open issues, Stack Overflow, etc., and have not found a solution.
- There is reproducer code and related data files such as images, videos, models, etc.