TensorFlow Base APIs

Tests of the tf , tf.math , tf.nn , tf.signal and tf.strings APIs.

IREE has three main backend targets: vmvx , llvm and vulkan-spirv. We also test TFLite in our infrastructure for benchmarking purposes.

Last Updated: 2020/12/8

End to end TensorFlow tests

targettflitevmvxvulkan-spirv
batch_norm_test✓✓✓
batch_to_space_nd_test✓✓✓
broadcast_to_test✓✓✗
broadcasting_test✗✓✗
concat_test✗✓✓
control_flow_test✓✓✓
conv_test✓✓✓
conv_transpose_test✓✓✗
depth_conv_test✓✓✓
dynamic_mlp_relu_test✗✓✗
dynamic_mlp_test✗✓✗
einsum_dynamic_test✗✗✗
einsum_static_test✗✗✗
einsum_vector_test✗✗✗
fft_test✗✓✗
fill_test✓✓✗
gather_test✗✓✓
image_resize_test✗✓✓
linspace_test✓✓✗
mandelbrot_test✗✗✗
matrix_ops_dynamic_test✗✓✗
matrix_ops_static_test✓✓✓
quantization_dyn_test✗✓✗
quantization_test✓✓✓
range_test✓✓✗
resource_ops_test✗✓✓
ring_buffer_test✗✗✗
scatter_update_test✗✓✗
simple_arithmetic_test✓✓✓
simple_stateful_test✗✓✓
sliding_window_test✗✓✓
space_to_batch_nd_test✓✓✓
strings_test✗✗✗
tensorlist_test✓✓✓

End to end tests of tf.math functions with static dimensions

Note: To be thorough, these tests use high rank tensors and test int dtypes where TensorFlow allows them to be used. Both of these choices disproportionately affect TFLite coverage, and don't represent coverage for simple use cases.

targettflitevmvxvulkan-spirv
abs✗✓✓
accumulate_n✓✓✓
acos✗✓✗
acosh✗✗✗
add✓✓✓
add_n✓✓✓
angle✓✓✓
argmax✓✗✗
argmin✓✗✗
asin✗✗✗
asinh✗✗✗
atan✗✓✗
atan2✗✗✗
atanh✗✗✗
bessel_i0✗✗✗
bessel_i0e✗✗✗
bessel_i1✗✗✗
bessel_i1e✗✗✗
betainc✗✗✗
bincount✗✗✗
ceil✓✓✓
confusion_matrix✗✗✗
cos✓✓✓
cosh✗✗✗
count_nonzero✓✗✗
cumprod✗✗✗
cumsum✓✓✗
cumulative_logsumexp✗✗✗
digamma✗✗✗
divide✗✗✗
divide_no_nan✓✓✓
equal✓✓✓
erf✗✗✗
erfc✗✗✗
erfinv✗✗✗
exp✓✓✓
expm1✗✗✗
floor✓✓✓
floordiv✓✓✓
floormod✓✓✓
greater✓✓✓
greater_equal✓✓✓
igamma✗✗✗
igammac✗✗✗
imag✓✓✓
in_top_k✗✗✗
invert_permutation✗✗✗
is_finite✗✓✓
is_inf✓✓✓
is_nan✓✓✗
is_non_decreasing✗✗✗
is_strictly_increasing✗✗✗
lbeta✗✓✓
less✓✓✓
less_equal✓✓✓
lgamma✗✓✓
log✓✓✓
log1p✗✓✓
log_sigmoid✗✓✓
log_softmax✓✓✓
logical_and✓✓✗
logical_not✓✓✗
logical_or✓✓✗
logical_xor✓✓✗
maximum✓✓✓
minimum✓✓✓
mod✓✓✗
multiply✓✓✓
multiply_no_nan✓✓✓
ndtri✗✗✗
negative✓✓✓
nextafter✗✗✗
not_equal✓✓✓
polygamma✗✗✗
polyval✗✓✓
pow✗✗✗
real✓✓✓
reciprocal✓✓✓
reciprocal_no_nan✓✓✓
reduce_all✗✓✗
reduce_any✓✓✗
reduce_euclidean_norm✗✗✗
reduce_logsumexp✗✓✗
reduce_max✓✓✗
reduce_mean✗✓✗
reduce_min✓✓✗
reduce_prod✓✗✗
reduce_std✗✓✗
reduce_sum✓✓✗
reduce_variance✗✓✗
rint✗✗✗
round✓✓✓
rsqrt✓✓✓
scalar_mul✓✓✓
segment_max✗✗✗
segment_mean✗✗✗
segment_min✗✗✗
segment_prod✗✗✗
segment_sum✓✗✗
sigmoid✓✓✓
sign✗✗✗
sin✓✓✓
sinh✗✓✓
sobol_sample✗✗✗
softmax✗✓✓
softplus✗✓✓
softsign✗✗✗
sqrt✓✓✓
square✓✓✓
squared_difference✓✓✓
subtract✓✓✓
tan✗✓✓
tanh✓✓✓
truediv✓✓✓
unsorted_segment_max✗✗✗
unsorted_segment_mean✗✗✗
unsorted_segment_min✗✗✗
unsorted_segment_prod✗✗✗
unsorted_segment_sqrt_n✗✗✗
unsorted_segment_sum✗✗✗
xdivy✗✗✗
xlog1py✗✗✗
xlogy✗✗✗
zero_fraction✓✓✓
zeta✗✗✗

End to end tests of tf.math functions with dynamic dimensions

targettflitevmvxvulkan-spirv
abs✗✓✗
accumulate_n✗✓✗
acos✗✓✗
acosh✗✗✗
add✗✓✗
add_n✗✓✗
angle✗✗✗
argmax✗✗✗
argmin✗✗✗
asin✗✗✗
asinh✗✗✗
atan✗✓✗
atan2✗✗✗
atanh✗✗✗
bessel_i0✗✗✗
bessel_i0e✗✗✗
bessel_i1✗✗✗
bessel_i1e✗✗✗
betainc✗✗✗
bincount✗✗✗
ceil✗✓✗
confusion_matrix✗✗✗
cos✗✓✗
cosh✗✗✗
count_nonzero✗✗✗
cumprod✗✗✗
cumsum✗✗✗
cumulative_logsumexp✗✗✗
digamma✗✗✗
divide✗✗✗
divide_no_nan✗✗✗
equal✗✓✗
erf✗✗✗
erfc✗✗✗
erfinv✗✗✗
exp✗✓✗
expm1✗✗✗
floor✗✓✗
floordiv✗✗✗
floormod✗✗✗
greater✗✓✗
greater_equal✗✓✗
igamma✗✗✗
igammac✗✗✗
imag✗✓✗
in_top_k✗✗✗
invert_permutation✗✗✗
is_finite✗✓✗
is_inf✗✓✗
is_nan✗✓✗
is_non_decreasing✗✗✗
is_strictly_increasing✗✗✗
lbeta✗✗✗
less✗✓✗
less_equal✗✓✗
lgamma✗✗✗
log✗✓✗
log1p✗✗✗
log_sigmoid✗✗✗
log_softmax✗✓✗
logical_and✗✗✗
logical_not✗✗✗
logical_or✗✗✗
logical_xor✗✗✗
maximum✗✓✗
minimum✗✓✗
mod✗✗✗
multiply✗✓✗
multiply_no_nan✗✗✗
ndtri✗✗✗
negative✗✓✗
nextafter✗✗✗
not_equal✗✓✗
polygamma✗✗✗
polyval✗✓✗
pow✗✗✗
real✗✓✓
reciprocal✗✓✗
reciprocal_no_nan✗✗✗
reduce_all✗✗✗
reduce_any✗✗✗
reduce_euclidean_norm✗✗✗
reduce_logsumexp✗✗✗
reduce_max✗✗✗
reduce_mean✗✗✗
reduce_min✗✗✗
reduce_prod✗✗✗
reduce_std✗✗✗
reduce_sum✗✗✗
reduce_variance✗✗✗
rint✗✗✗
round✗✗✗
rsqrt✗✓✗
scalar_mul✗✓✗
segment_max✗✗✗
segment_mean✗✗✗
segment_min✗✗✗
segment_prod✗✗✗
segment_sum✗✗✗
sigmoid✗✓✗
sign✗✗✗
sin✗✓✗
sinh✗✓✗
sobol_sample✗✗✗
softmax✗✓✗
softplus✗✗✗
softsign✗✗✗
sqrt✗✓✗
square✗✓✗
squared_difference✗✓✗
subtract✗✓✗
tan✗✓✗
tanh✗✓✗
truediv✗✓✗
unsorted_segment_max✗✗✗
unsorted_segment_mean✗✗✗
unsorted_segment_min✗✗✗
unsorted_segment_prod✗✗✗
unsorted_segment_sqrt_n✗✗✗
unsorted_segment_sum✗✗✗
xdivy✗✗✗
xlog1py✗✗✗
xlogy✗✗✗
zero_fraction✗✗✗
zeta✗✗✗

End to end tests of tf.math functions with complex numbers

targettflitevmvxvulkan-spirv
abs✗✓✓
add✗✓✓
angle✗✗✗
asinh✗✗✗
atanh✗✗✗
conj✗✓✓
cos✗✗✗
cosh✗✗✗
count_nonzero✗✗✗
cumprod✗✗✗
cumsum✗✗✗
divide✗✗✗
divide_no_nan✗✗✗
exp✗✓✓
expm1✗✗✗
imag✗✓✓
l2_normalize✗✓✗
log✗✗✗
log1p✗✗✗
multiply✗✓✓
multiply_no_nan✗✗✗
negative✗✗✗
pow✗✗✗
real✗✓✓
reciprocal✗✗✗
reciprocal_no_nan✗✗✗
reduce_euclidean_norm✗✗✗
reduce_std✗✗✗
reduce_variance✗✗✗
rsqrt✗✗✗
sigmoid✗✗✗
sign✗✗✗
sin✗✗✗
sinh✗✗✗
sqrt✗✗✗
square✗✓✓
squared_difference✗✓✓
subtract✗✓✓
tan✗✗✗
tanh✗✗✗
truediv✗✓✓
xdivy✗✗✗
xlog1py✗✗✗
xlogy✗✗✗
zero_fraction✗✗✗