Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions offload/unittests/Conformance/device_code/DeviceAPIs.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,49 +103,68 @@ extern "C" {

double __ocml_acos_f64(double);
float __ocml_acos_f32(float);
float16 __ocml_acos_f16(float16);
float __ocml_acosh_f32(float);
float16 __ocml_acosh_f16(float16);
double __ocml_asin_f64(double);
float __ocml_asin_f32(float);
float16 __ocml_asin_f16(float16);
float __ocml_asinh_f32(float);
float16 __ocml_asinh_f16(float16);
float __ocml_atan_f32(float);
float16 __ocml_atan_f16(float16);
float __ocml_atan2_f32(float, float);
float __ocml_atanh_f32(float);
float16 __ocml_atanh_f16(float16);
double __ocml_cbrt_f64(double);
float __ocml_cbrt_f32(float);
double __ocml_cos_f64(double);
float __ocml_cos_f32(float);
float16 __ocml_cos_f16(float16);
float __ocml_cosh_f32(float);
float16 __ocml_cosh_f16(float16);
float __ocml_cospi_f32(float);
float __ocml_erf_f32(float);
double __ocml_exp_f64(double);
float __ocml_exp_f32(float);
float16 __ocml_exp_f16(float16);
double __ocml_exp10_f64(double);
float __ocml_exp10_f32(float);
float16 __ocml_exp10_f16(float16);
double __ocml_exp2_f64(double);
float __ocml_exp2_f32(float);
float16 __ocml_exp2_f16(float16);
double __ocml_expm1_f64(double);
float __ocml_expm1_f32(float);
float16 __ocml_expm1_f16(float16);
double __ocml_hypot_f64(double, double);
float __ocml_hypot_f32(float, float);
double __ocml_log_f64(double);
float __ocml_log_f32(float);
float16 __ocml_log_f16(float16);
double __ocml_log10_f64(double);
float __ocml_log10_f32(float);
float16 __ocml_log10_f16(float16);
double __ocml_log1p_f64(double);
float __ocml_log1p_f32(float);
double __ocml_log2_f64(double);
float __ocml_log2_f32(float);
float16 __ocml_log2_f16(float16);
float __ocml_pow_f32(float, float);
float __ocml_round_f32(float);
double __ocml_sin_f64(double);
float __ocml_sin_f32(float);
float16 __ocml_sin_f16(float16);
double __ocml_sincos_f64(double, double *);
float __ocml_sincos_f32(float, float *);
float __ocml_sinh_f32(float);
float16 __ocml_sinh_f16(float16);
float __ocml_sinpi_f32(float);
double __ocml_tan_f64(double);
float __ocml_tan_f32(float);
float16 __ocml_tan_f16(float16);
float __ocml_tanh_f32(float);
float16 __ocml_tanh_f16(float16);
} // extern "C"

#endif // HIP_MATH_FOUND
Expand Down
95 changes: 95 additions & 0 deletions offload/unittests/Conformance/device_code/HIPMath.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,21 @@ __gpu_kernel void acosfKernel(const float *X, float *Out,
runKernelBody<__ocml_acos_f32>(NumElements, Out, X);
}

__gpu_kernel void acosf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_acos_f16>(NumElements, Out, X);
}

__gpu_kernel void acoshfKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_acosh_f32>(NumElements, Out, X);
}

__gpu_kernel void acoshf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_acosh_f16>(NumElements, Out, X);
}

__gpu_kernel void asinKernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_asin_f64>(NumElements, Out, X);
Expand All @@ -85,16 +95,31 @@ __gpu_kernel void asinfKernel(const float *X, float *Out,
runKernelBody<__ocml_asin_f32>(NumElements, Out, X);
}

__gpu_kernel void asinf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_asin_f16>(NumElements, Out, X);
}

__gpu_kernel void asinhfKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_asinh_f32>(NumElements, Out, X);
}

__gpu_kernel void asinhf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_asinh_f16>(NumElements, Out, X);
}

__gpu_kernel void atanfKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_atan_f32>(NumElements, Out, X);
}

__gpu_kernel void atanf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_atan_f16>(NumElements, Out, X);
}

__gpu_kernel void atan2fKernel(const float *X, const float *Y, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_atan2_f32>(NumElements, Out, X, Y);
Expand All @@ -105,6 +130,11 @@ __gpu_kernel void atanhfKernel(const float *X, float *Out,
runKernelBody<__ocml_atanh_f32>(NumElements, Out, X);
}

__gpu_kernel void atanhf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_atanh_f16>(NumElements, Out, X);
}

__gpu_kernel void cbrtKernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_cbrt_f64>(NumElements, Out, X);
Expand All @@ -125,11 +155,21 @@ __gpu_kernel void cosfKernel(const float *X, float *Out,
runKernelBody<__ocml_cos_f32>(NumElements, Out, X);
}

__gpu_kernel void cosf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_cos_f16>(NumElements, Out, X);
}

__gpu_kernel void coshfKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_cosh_f32>(NumElements, Out, X);
}

__gpu_kernel void coshf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_cosh_f16>(NumElements, Out, X);
}

__gpu_kernel void cospifKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_cospi_f32>(NumElements, Out, X);
Expand All @@ -150,6 +190,11 @@ __gpu_kernel void expfKernel(const float *X, float *Out,
runKernelBody<__ocml_exp_f32>(NumElements, Out, X);
}

__gpu_kernel void expf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_exp_f16>(NumElements, Out, X);
}

__gpu_kernel void exp10Kernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_exp10_f64>(NumElements, Out, X);
Expand All @@ -160,6 +205,11 @@ __gpu_kernel void exp10fKernel(const float *X, float *Out,
runKernelBody<__ocml_exp10_f32>(NumElements, Out, X);
}

__gpu_kernel void exp10f16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_exp10_f16>(NumElements, Out, X);
}

__gpu_kernel void exp2Kernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_exp2_f64>(NumElements, Out, X);
Expand All @@ -170,6 +220,11 @@ __gpu_kernel void exp2fKernel(const float *X, float *Out,
runKernelBody<__ocml_exp2_f32>(NumElements, Out, X);
}

__gpu_kernel void exp2f16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_exp2_f16>(NumElements, Out, X);
}

__gpu_kernel void expm1Kernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_expm1_f64>(NumElements, Out, X);
Expand All @@ -180,6 +235,11 @@ __gpu_kernel void expm1fKernel(const float *X, float *Out,
runKernelBody<__ocml_expm1_f32>(NumElements, Out, X);
}

__gpu_kernel void expm1f16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_expm1_f16>(NumElements, Out, X);
}

__gpu_kernel void hypotKernel(const double *X, const double *Y, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_hypot_f64>(NumElements, Out, X, Y);
Expand All @@ -200,6 +260,11 @@ __gpu_kernel void logfKernel(const float *X, float *Out,
runKernelBody<__ocml_log_f32>(NumElements, Out, X);
}

__gpu_kernel void logf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_log_f16>(NumElements, Out, X);
}

__gpu_kernel void log10Kernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_log10_f64>(NumElements, Out, X);
Expand All @@ -210,6 +275,11 @@ __gpu_kernel void log10fKernel(const float *X, float *Out,
runKernelBody<__ocml_log10_f32>(NumElements, Out, X);
}

__gpu_kernel void log10f16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_log10_f16>(NumElements, Out, X);
}

__gpu_kernel void log1pKernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_log1p_f64>(NumElements, Out, X);
Expand All @@ -230,6 +300,11 @@ __gpu_kernel void log2fKernel(const float *X, float *Out,
runKernelBody<__ocml_log2_f32>(NumElements, Out, X);
}

__gpu_kernel void log2f16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_log2_f16>(NumElements, Out, X);
}

__gpu_kernel void powfKernel(const float *X, float *Y, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_pow_f32>(NumElements, Out, X, Y);
Expand All @@ -251,6 +326,11 @@ __gpu_kernel void sinfKernel(const float *X, float *Out,
runKernelBody<__ocml_sin_f32>(NumElements, Out, X);
}

__gpu_kernel void sinf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_sin_f16>(NumElements, Out, X);
}

__gpu_kernel void sincosSinKernel(const double *X, double *Out,
size_t NumElements) noexcept {
runKernelBody<sincosSin>(NumElements, Out, X);
Expand All @@ -276,6 +356,11 @@ __gpu_kernel void sinhfKernel(const float *X, float *Out,
runKernelBody<__ocml_sinh_f32>(NumElements, Out, X);
}

__gpu_kernel void sinhf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_sinh_f16>(NumElements, Out, X);
}

__gpu_kernel void sinpifKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_sinpi_f32>(NumElements, Out, X);
Expand All @@ -291,10 +376,20 @@ __gpu_kernel void tanfKernel(const float *X, float *Out,
runKernelBody<__ocml_tan_f32>(NumElements, Out, X);
}

__gpu_kernel void tanf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_tan_f16>(NumElements, Out, X);
}

__gpu_kernel void tanhfKernel(const float *X, float *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_tanh_f32>(NumElements, Out, X);
}

__gpu_kernel void tanhf16Kernel(const float16 *X, float16 *Out,
size_t NumElements) noexcept {
runKernelBody<__ocml_tanh_f16>(NumElements, Out, X);
}
} // extern "C"

#endif // HIP_MATH_FOUND
Loading
Loading