1.1.7. Half2 Math Functions

[Half Precision Intrinsics]

To use these functions, include the header file cuda_fp16.h in your program.

Functions

__device__ ​ __half2 atomicAdd ( const __half2* address, const __half2 val )
Vector add val to the value stored at address in global or shared memory, and writes this value back to address. The atomicity of the add operation is guaranteed separately for each of the two __half elements; the entire __half2 is not guaranteed to be atomic as a single 32-bit access.
__device__ ​ __half2 h2ceil ( const __half2 h )
Calculate half2 vector ceiling of the input argument.
__device__ ​ __half2 h2cos ( const __half2 a )
Calculates half2 vector cosine in round-to-nearest-even mode.
__device__ ​ __half2 h2exp ( const __half2 a )
Calculates half2 vector exponential function in round-to-nearest mode.
__device__ ​ __half2 h2exp10 ( const __half2 a )
Calculates half2 vector decimal exponential function in round-to-nearest-even mode.
__device__ ​ __half2 h2exp2 ( const __half2 a )
Calculates half2 vector binary exponential function in round-to-nearest-even mode.
__device__ ​ __half2 h2floor ( const __half2 h )
Calculate the largest integer less than or equal to h.
__device__ ​ __half2 h2log ( const __half2 a )
Calculates half2 vector natural logarithm in round-to-nearest-even mode.
__device__ ​ __half2 h2log10 ( const __half2 a )
Calculates half2 vector decimal logarithm in round-to-nearest-even mode.
__device__ ​ __half2 h2log2 ( const __half2 a )
Calculates half2 vector binary logarithm in round-to-nearest-even mode.
__device__ ​ __half2 h2rcp ( const __half2 a )
Calculates half2 vector reciprocal in round-to-nearest-even mode.
__device__ ​ __half2 h2rint ( const __half2 h )
Round input to nearest integer value in half-precision floating-point number.
__device__ ​ __half2 h2rsqrt ( const __half2 a )
Calculates half2 vector reciprocal square root in round-to-nearest mode.
__device__ ​ __half2 h2sin ( const __half2 a )
Calculates half2 vector sine in round-to-nearest-even mode.
__device__ ​ __half2 h2sqrt ( const __half2 a )
Calculates half2 vector square root in round-to-nearest-even mode.
__device__ ​ __half2 h2trunc ( const __half2 h )
Truncate half2 vector input argument to the integral part.

Functions

__device__ ​ __half2 atomicAdd ( const __half2* address, const __half2 val )
Vector add val to the value stored at address in global or shared memory, and writes this value back to address. The atomicity of the add operation is guaranteed separately for each of the two __half elements; the entire __half2 is not guaranteed to be atomic as a single 32-bit access.
Parameters
address
- half2*. An address in global or shared memory.
val
- half2. The value to be added.
Returns

half2

  • The

    old value read from address.

Description

The location of address must be in global or shared memory. This operation has undefined behavior otherwise. This operation is only supported by devices of compute capability 6.x and higher.

Note:

For more details for this function see the Atomic Functions section in the CUDA C++ Programming Guide.

__device__ ​ __half2 h2ceil ( const __half2 h )
Calculate half2 vector ceiling of the input argument.
Parameters
h
- half2. Is only being read.
Returns

half2

  • The

    vector of smallest integers not less than h.

Description

For each component of vector h compute the smallest integer value not less than h.

__device__ ​ __half2 h2cos ( const __half2 a )
Calculates half2 vector cosine in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise cosine on vector a.

Description

Calculates half2 cosine of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2exp ( const __half2 a )
Calculates half2 vector exponential function in round-to-nearest mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise exponential function on vector a.

Description

Calculates half2 exponential function of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2exp10 ( const __half2 a )
Calculates half2 vector decimal exponential function in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise decimal exponential function on vector a.

Description

Calculates half2 decimal exponential function of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2exp2 ( const __half2 a )
Calculates half2 vector binary exponential function in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise binary exponential function on vector a.

Description

Calculates half2 binary exponential function of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2floor ( const __half2 h )
Calculate the largest integer less than or equal to h.
Parameters
h
- half2. Is only being read.
Returns

half2

  • The

    vector of largest integers which is less than or equal to h.

Description

For each component of vector h calculate the largest integer value which is less than or equal to h.

__device__ ​ __half2 h2log ( const __half2 a )
Calculates half2 vector natural logarithm in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise natural logarithm on vector a.

Description

Calculates half2 natural logarithm of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2log10 ( const __half2 a )
Calculates half2 vector decimal logarithm in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise decimal logarithm on vector a.

Description

Calculates half2 decimal logarithm of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2log2 ( const __half2 a )
Calculates half2 vector binary logarithm in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise binary logarithm on vector a.

Description

Calculates half2 binary logarithm of input vector a in round-to-nearest mode.

__device__ ​ __half2 h2rcp ( const __half2 a )
Calculates half2 vector reciprocal in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise reciprocal on vector a.

Description

Calculates half2 reciprocal of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2rint ( const __half2 h )
Round input to nearest integer value in half-precision floating-point number.
Parameters
h
- half2. Is only being read.
Returns

half2

  • The

    vector of rounded integer values.

Description

Round each component of half2 vector h to the nearest integer value in half-precision floating-point format, with halfway cases rounded to the nearest even integer value.

__device__ ​ __half2 h2rsqrt ( const __half2 a )
Calculates half2 vector reciprocal square root in round-to-nearest mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise reciprocal square root on vector a.

Description

Calculates half2 reciprocal square root of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2sin ( const __half2 a )
Calculates half2 vector sine in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise sine on vector a.

Description

Calculates half2 sine of input vector a in round-to-nearest-even mode.

__device__ ​ __half2 h2sqrt ( const __half2 a )
Calculates half2 vector square root in round-to-nearest-even mode.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The

    elementwise square root on vector a.

Description

Calculates half2 square root of input vector a in round-to-nearest mode.

__device__ ​ __half2 h2trunc ( const __half2 h )
Truncate half2 vector input argument to the integral part.
Parameters
h
- half2. Is only being read.
Returns

half2

  • The

    truncated h.

Description

Round each component of vector h to the nearest integer value that does not exceed h in magnitude.