1.2.6. Half Precision Conversion and Data Movement

[Half Precision Intrinsics]

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

Functions

__host____device____half __double2half ( const double  a )
Converts double number to half precision in round-to-nearest-even mode and returns half with converted value.
__host____device____half2 __float22half2_rn ( const float2 a )
Converts both components of float2 number to half precision in round-to-nearest-even mode and returns half2 with converted values.
__host____device____half __float2half ( const float  a )
Converts float number to half precision in round-to-nearest-even mode and returns half with converted value.
__host____device____half2 __float2half2_rn ( const float  a )
Converts input to half precision in round-to-nearest-even mode and populates both halves of half2 with converted value.
__host____device____half __float2half_rd ( const float  a )
Converts float number to half precision in round-down mode and returns half with converted value.
__host____device____half __float2half_rn ( const float  a )
Converts float number to half precision in round-to-nearest-even mode and returns half with converted value.
__host____device____half __float2half_ru ( const float  a )
Converts float number to half precision in round-up mode and returns half with converted value.
__host____device____half __float2half_rz ( const float  a )
Converts float number to half precision in round-towards-zero mode and returns half with converted value.
__host____device____half2 __floats2half2_rn ( const float  a, const float  b )
Converts both input floats to half precision in round-to-nearest-even mode and returns half2 with converted values.
__host____device__ ​ float2 __half22float2 ( const __half2 a )
Converts both halves of half2 to float2 and returns the result.
__host____device__ ​ signed char __half2char_rz ( const __half h )
Convert a half to a signed char in round-towards-zero mode.
__host____device__ ​ float __half2float ( const __half a )
Converts half number to float.
__host____device____half2 __half2half2 ( const __half a )
Returns half2 with both halves equal to the input value.
__device__ ​ int __half2int_rd ( const __half h )
Convert a half to a signed integer in round-down mode.
__device__ ​ int __half2int_rn ( const __half h )
Convert a half to a signed integer in round-to-nearest-even mode.
__device__ ​ int __half2int_ru ( const __half h )
Convert a half to a signed integer in round-up mode.
__host____device__ ​ int __half2int_rz ( const __half h )
Convert a half to a signed integer in round-towards-zero mode.
__device__ ​ long long int __half2ll_rd ( const __half h )
Convert a half to a signed 64-bit integer in round-down mode.
__device__ ​ long long int __half2ll_rn ( const __half h )
Convert a half to a signed 64-bit integer in round-to-nearest-even mode.
__device__ ​ long long int __half2ll_ru ( const __half h )
Convert a half to a signed 64-bit integer in round-up mode.
__host____device__ ​ long long int __half2ll_rz ( const __half h )
Convert a half to a signed 64-bit integer in round-towards-zero mode.
__device__ ​ short int __half2short_rd ( const __half h )
Convert a half to a signed short integer in round-down mode.
__device__ ​ short int __half2short_rn ( const __half h )
Convert a half to a signed short integer in round-to-nearest-even mode.
__device__ ​ short int __half2short_ru ( const __half h )
Convert a half to a signed short integer in round-up mode.
__host____device__ ​ short int __half2short_rz ( const __half h )
Convert a half to a signed short integer in round-towards-zero mode.
__host____device__ ​ unsigned char __half2uchar_rz ( const __half h )
Convert a half to an unsigned char in round-towards-zero mode.
__device__ ​ unsigned int __half2uint_rd ( const __half h )
Convert a half to an unsigned integer in round-down mode.
__device__ ​ unsigned int __half2uint_rn ( const __half h )
Convert a half to an unsigned integer in round-to-nearest-even mode.
__device__ ​ unsigned int __half2uint_ru ( const __half h )
Convert a half to an unsigned integer in round-up mode.
__host____device__ ​ unsigned int __half2uint_rz ( const __half h )
Convert a half to an unsigned integer in round-towards-zero mode.
__device__ ​ unsigned long long int __half2ull_rd ( const __half h )
Convert a half to an unsigned 64-bit integer in round-down mode.
__device__ ​ unsigned long long int __half2ull_rn ( const __half h )
Convert a half to an unsigned 64-bit integer in round-to-nearest-even mode.
__device__ ​ unsigned long long int __half2ull_ru ( const __half h )
Convert a half to an unsigned 64-bit integer in round-up mode.
__host____device__ ​ unsigned long long int __half2ull_rz ( const __half h )
Convert a half to an unsigned 64-bit integer in round-towards-zero mode.
__device__ ​ unsigned short int __half2ushort_rd ( const __half h )
Convert a half to an unsigned short integer in round-down mode.
__device__ ​ unsigned short int __half2ushort_rn ( const __half h )
Convert a half to an unsigned short integer in round-to-nearest-even mode.
__device__ ​ unsigned short int __half2ushort_ru ( const __half h )
Convert a half to an unsigned short integer in round-up mode.
__host____device__ ​ unsigned short int __half2ushort_rz ( const __half h )
Convert a half to an unsigned short integer in round-towards-zero mode.
__host____device__ ​ short int __half_as_short ( const __half h )
Reinterprets bits in a half as a signed short integer.
__host____device__ ​ unsigned short int __half_as_ushort ( const __half h )
Reinterprets bits in a half as an unsigned short integer.
__host____device____half2 __halves2half2 ( const __half a, const __half b )
Combines two half numbers into one half2 number.
__host____device__ ​ float __high2float ( const __half2 a )
Converts high 16 bits of half2 to float and returns the result.
__host____device____half __high2half ( const __half2 a )
Returns high 16 bits of half2 input.
__host____device____half2 __high2half2 ( const __half2 a )
Extracts high 16 bits from half2 input.
__host____device____half2 __highs2half2 ( const __half2 a, const __half2 b )
Extracts high 16 bits from each of the two half2 inputs and combines into one half2 number.
__host____device____half __int2half_rd ( const int  i )
Convert a signed integer to a half in round-down mode.
__host____device____half __int2half_rn ( const int  i )
Convert a signed integer to a half in round-to-nearest-even mode.
__host____device____half __int2half_ru ( const int  i )
Convert a signed integer to a half in round-up mode.
__host____device____half __int2half_rz ( const int  i )
Convert a signed integer to a half in round-towards-zero mode.
__device____half __ldca ( const __half* ptr )
Generates a `ld.global.ca` load instruction.
__device____half2 __ldca ( const __half2* ptr )
Generates a `ld.global.ca` load instruction.
__device____half __ldcg ( const __half* ptr )
Generates a `ld.global.cg` load instruction.
__device____half2 __ldcg ( const __half2* ptr )
Generates a `ld.global.cg` load instruction.
__device____half __ldcs ( const __half* ptr )
Generates a `ld.global.cs` load instruction.
__device____half2 __ldcs ( const __half2* ptr )
Generates a `ld.global.cs` load instruction.
__device____half __ldcv ( const __half* ptr )
Generates a `ld.global.cv` load instruction.
__device____half2 __ldcv ( const __half2* ptr )
Generates a `ld.global.cv` load instruction.
__device____half __ldg ( const __half* ptr )
Generates a `ld.global.nc` load instruction.
__device____half2 __ldg ( const __half2* ptr )
Generates a `ld.global.nc` load instruction.
__device____half __ldlu ( const __half* ptr )
Generates a `ld.global.lu` load instruction.
__device____half2 __ldlu ( const __half2* ptr )
Generates a `ld.global.lu` load instruction.
__host____device____half __ll2half_rd ( const long long int i )
Convert a signed 64-bit integer to a half in round-down mode.
__host____device____half __ll2half_rn ( const long long int i )
Convert a signed 64-bit integer to a half in round-to-nearest-even mode.
__host____device____half __ll2half_ru ( const long long int i )
Convert a signed 64-bit integer to a half in round-up mode.
__host____device____half __ll2half_rz ( const long long int i )
Convert a signed 64-bit integer to a half in round-towards-zero mode.
__host____device__ ​ float __low2float ( const __half2 a )
Converts low 16 bits of half2 to float and returns the result.
__host____device____half __low2half ( const __half2 a )
Returns low 16 bits of half2 input.
__host____device____half2 __low2half2 ( const __half2 a )
Extracts low 16 bits from half2 input.
__host____device____half2 __lowhigh2highlow ( const __half2 a )
Swaps both halves of the half2 input.
__host____device____half2 __lows2half2 ( const __half2 a, const __half2 b )
Extracts low 16 bits from each of the two half2 inputs and combines into one half2 number.
__device____half __shfl_down_sync ( const unsigned mask, const __half var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with higher ID relative to the caller.
__device____half2 __shfl_down_sync ( const unsigned mask, const __half2 var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with higher ID relative to the caller.
__device____half __shfl_sync ( const unsigned mask, const __half var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Direct copy from indexed thread.
__device____half2 __shfl_sync ( const unsigned mask, const __half2 var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Direct copy from indexed thread.
__device____half __shfl_up_sync ( const unsigned mask, const __half var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with lower ID relative to the caller.
__device____half2 __shfl_up_sync ( const unsigned mask, const __half2 var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with lower ID relative to the caller.
__device____half __shfl_xor_sync ( const unsigned mask, const __half var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread based on bitwise XOR of own thread ID.
__device____half2 __shfl_xor_sync ( const unsigned mask, const __half2 var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread based on bitwise XOR of own thread ID.
__host____device____half __short2half_rd ( const short int i )
Convert a signed short integer to a half in round-down mode.
__host____device____half __short2half_rn ( const short int i )
Convert a signed short integer to a half in round-to-nearest-even mode.
__host____device____half __short2half_ru ( const short int i )
Convert a signed short integer to a half in round-up mode.
__host____device____half __short2half_rz ( const short int i )
Convert a signed short integer to a half in round-towards-zero mode.
__host____device____half __short_as_half ( const short int i )
Reinterprets bits in a signed short integer as a half.
__device__ ​ void __stcg ( const __half* ptr, const __half value )
Generates a `st.global.cg` store instruction.
__device__ ​ void __stcg ( const __half2* ptr, const __half2 value )
Generates a `st.global.cg` store instruction.
__device__ ​ void __stcs ( const __half* ptr, const __half value )
Generates a `st.global.cs` store instruction.
__device__ ​ void __stcs ( const __half2* ptr, const __half2 value )
Generates a `st.global.cs` store instruction.
__device__ ​ void __stwb ( const __half* ptr, const __half value )
Generates a `st.global.wb` store instruction.
__device__ ​ void __stwb ( const __half2* ptr, const __half2 value )
Generates a `st.global.wb` store instruction.
__device__ ​ void __stwt ( const __half* ptr, const __half value )
Generates a `st.global.wt` store instruction.
__device__ ​ void __stwt ( const __half2* ptr, const __half2 value )
Generates a `st.global.wt` store instruction.
__host____device____half __uint2half_rd ( const unsigned int  i )
Convert an unsigned integer to a half in round-down mode.
__host____device____half __uint2half_rn ( const unsigned int  i )
Convert an unsigned integer to a half in round-to-nearest-even mode.
__host____device____half __uint2half_ru ( const unsigned int  i )
Convert an unsigned integer to a half in round-up mode.
__host____device____half __uint2half_rz ( const unsigned int  i )
Convert an unsigned integer to a half in round-towards-zero mode.
__host____device____half __ull2half_rd ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-down mode.
__host____device____half __ull2half_rn ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-to-nearest-even mode.
__host____device____half __ull2half_ru ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-up mode.
__host____device____half __ull2half_rz ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-towards-zero mode.
__host____device____half __ushort2half_rd ( const unsigned short int i )
Convert an unsigned short integer to a half in round-down mode.
__host____device____half __ushort2half_rn ( const unsigned short int i )
Convert an unsigned short integer to a half in round-to-nearest-even mode.
__host____device____half __ushort2half_ru ( const unsigned short int i )
Convert an unsigned short integer to a half in round-up mode.
__host____device____half __ushort2half_rz ( const unsigned short int i )
Convert an unsigned short integer to a half in round-towards-zero mode.
__host____device____half __ushort_as_half ( const unsigned short int i )
Reinterprets bits in an unsigned short integer as a half.
__host____device____half2 make_half2 ( const __half x, const __half y )
Vector function, combines two __half numbers into one __half2 number.

Functions

__host____device____half __double2half ( const double  a )
Converts double number to half precision in round-to-nearest-even mode and returns half with converted value.
Parameters
a
- double. Is only being read.
Returns

half

  • a converted to half.
Description

Converts double number a to half precision in round-to-nearest-even mode.

__host____device____half2 __float22half2_rn ( const float2 a )
Converts both components of float2 number to half precision in round-to-nearest-even mode and returns half2 with converted values.
Parameters
a
- float2. Is only being read.
Returns

half2

  • The half2 which has corresponding halves equal to the converted float2 components.
Description

Converts both components of float2 to half precision in round-to-nearest-even mode and combines the results into one half2 number. Low 16 bits of the return value correspond to a.x and high 16 bits of the return value correspond to a.y.

__host____device____half __float2half ( const float  a )
Converts float number to half precision in round-to-nearest-even mode and returns half with converted value.
Parameters
a
- float. Is only being read.
Returns

half

  • a converted to half.
Description

Converts float number a to half precision in round-to-nearest-even mode.

__host____device____half2 __float2half2_rn ( const float  a )
Converts input to half precision in round-to-nearest-even mode and populates both halves of half2 with converted value.
Parameters
a
- float. Is only being read.
Returns

half2

  • The half2 value with both halves equal to the converted half precision number.
Description

Converts input a to half precision in round-to-nearest-even mode and populates both halves of half2 with converted value.

__host____device____half __float2half_rd ( const float  a )
Converts float number to half precision in round-down mode and returns half with converted value.
Parameters
a
- float. Is only being read.
Returns

half

  • a converted to half.
Description

Converts float number a to half precision in round-down mode.

__host____device____half __float2half_rn ( const float  a )
Converts float number to half precision in round-to-nearest-even mode and returns half with converted value.
Parameters
a
- float. Is only being read.
Returns

half

  • a converted to half.
Description

Converts float number a to half precision in round-to-nearest-even mode.

__host____device____half __float2half_ru ( const float  a )
Converts float number to half precision in round-up mode and returns half with converted value.
Parameters
a
- float. Is only being read.
Returns

half

  • a converted to half.
Description

Converts float number a to half precision in round-up mode.

__host____device____half __float2half_rz ( const float  a )
Converts float number to half precision in round-towards-zero mode and returns half with converted value.
Parameters
a
- float. Is only being read.
Returns

half

  • a converted to half.
Description

Converts float number a to half precision in round-towards-zero mode.

__host____device____half2 __floats2half2_rn ( const float  a, const float  b )
Converts both input floats to half precision in round-to-nearest-even mode and returns half2 with converted values.
Parameters
a
- float. Is only being read.
b
- float. Is only being read.
Returns

half2

  • The half2 value with corresponding halves equal to the converted input floats.
Description

Converts both input floats to half precision in round-to-nearest-even mode and combines the results into one half2 number. Low 16 bits of the return value correspond to the input a, high 16 bits correspond to the input b.

__host____device__ ​ float2 __half22float2 ( const __half2 a )
Converts both halves of half2 to float2 and returns the result.
Parameters
a
- half2. Is only being read.
Returns

float2

  • a converted to float2.
Description

Converts both halves of half2 input a to float2 and returns the result.

__host____device__ ​ signed char __half2char_rz ( const __half h )
Convert a half to a signed char in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

signed char

  • h converted to a signed char.
Description

Convert the half-precision floating-point value h to a signed char integer in round-towards-zero mode. NaN inputs are converted to 0.

__host____device__ ​ float __half2float ( const __half a )
Converts half number to float.
Parameters
a
- float. Is only being read.
Returns

float

  • a converted to float.
Description

Converts half number a to float.

__host____device____half2 __half2half2 ( const __half a )
Returns half2 with both halves equal to the input value.
Parameters
a
- half. Is only being read.
Returns

half2

  • The vector which has both its halves equal to the input a.
Description

Returns half2 number with both halves equal to the input ahalf number.

__device__ ​ int __half2int_rd ( const __half h )
Convert a half to a signed integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

int

  • h converted to a signed integer.
Description

Convert the half-precision floating-point value h to a signed integer in round-down mode. NaN inputs are converted to 0.

__device__ ​ int __half2int_rn ( const __half h )
Convert a half to a signed integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

int

  • h converted to a signed integer.
Description

Convert the half-precision floating-point value h to a signed integer in round-to-nearest-even mode. NaN inputs are converted to 0.

__device__ ​ int __half2int_ru ( const __half h )
Convert a half to a signed integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

int

  • h converted to a signed integer.
Description

Convert the half-precision floating-point value h to a signed integer in round-up mode. NaN inputs are converted to 0.

__host____device__ ​ int __half2int_rz ( const __half h )
Convert a half to a signed integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

int

  • h converted to a signed integer.
Description

Convert the half-precision floating-point value h to a signed integer in round-towards-zero mode. NaN inputs are converted to 0.

__device__ ​ long long int __half2ll_rd ( const __half h )
Convert a half to a signed 64-bit integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

long long int

  • h converted to a signed 64-bit integer.
Description

Convert the half-precision floating-point value h to a signed 64-bit integer in round-down mode. NaN inputs return a long long int with hex value of 0x8000000000000000.

__device__ ​ long long int __half2ll_rn ( const __half h )
Convert a half to a signed 64-bit integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

long long int

  • h converted to a signed 64-bit integer.
Description

Convert the half-precision floating-point value h to a signed 64-bit integer in round-to-nearest-even mode. NaN inputs return a long long int with hex value of 0x8000000000000000.

__device__ ​ long long int __half2ll_ru ( const __half h )
Convert a half to a signed 64-bit integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

long long int

  • h converted to a signed 64-bit integer.
Description

Convert the half-precision floating-point value h to a signed 64-bit integer in round-up mode. NaN inputs return a long long int with hex value of 0x8000000000000000.

__host____device__ ​ long long int __half2ll_rz ( const __half h )
Convert a half to a signed 64-bit integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

long long int

  • h converted to a signed 64-bit integer.
Description

Convert the half-precision floating-point value h to a signed 64-bit integer in round-towards-zero mode. NaN inputs return a long long int with hex value of 0x8000000000000000.

__device__ ​ short int __half2short_rd ( const __half h )
Convert a half to a signed short integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

short int

  • h converted to a signed short integer.
Description

Convert the half-precision floating-point value h to a signed short integer in round-down mode. NaN inputs are converted to 0.

__device__ ​ short int __half2short_rn ( const __half h )
Convert a half to a signed short integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

short int

  • h converted to a signed short integer.
Description

Convert the half-precision floating-point value h to a signed short integer in round-to-nearest-even mode. NaN inputs are converted to 0.

__device__ ​ short int __half2short_ru ( const __half h )
Convert a half to a signed short integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

short int

  • h converted to a signed short integer.
Description

Convert the half-precision floating-point value h to a signed short integer in round-up mode. NaN inputs are converted to 0.

__host____device__ ​ short int __half2short_rz ( const __half h )
Convert a half to a signed short integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

short int

  • h converted to a signed short integer.
Description

Convert the half-precision floating-point value h to a signed short integer in round-towards-zero mode. NaN inputs are converted to 0.

__host____device__ ​ unsigned char __half2uchar_rz ( const __half h )
Convert a half to an unsigned char in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

unsigned char

  • h converted to an unsigned char.
Description

Convert the half-precision floating-point value h to an unsigned char in round-towards-zero mode. NaN inputs are converted to 0.

__device__ ​ unsigned int __half2uint_rd ( const __half h )
Convert a half to an unsigned integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

unsigned int

  • h converted to an unsigned integer.
Description

Convert the half-precision floating-point value h to an unsigned integer in round-down mode. NaN inputs are converted to 0.

__device__ ​ unsigned int __half2uint_rn ( const __half h )
Convert a half to an unsigned integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

unsigned int

  • h converted to an unsigned integer.
Description

Convert the half-precision floating-point value h to an unsigned integer in round-to-nearest-even mode. NaN inputs are converted to 0.

__device__ ​ unsigned int __half2uint_ru ( const __half h )
Convert a half to an unsigned integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

unsigned int

  • h converted to an unsigned integer.
Description

Convert the half-precision floating-point value h to an unsigned integer in round-up mode. NaN inputs are converted to 0.

__host____device__ ​ unsigned int __half2uint_rz ( const __half h )
Convert a half to an unsigned integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

unsigned int

  • h converted to an unsigned integer.
Description

Convert the half-precision floating-point value h to an unsigned integer in round-towards-zero mode. NaN inputs are converted to 0.

__device__ ​ unsigned long long int __half2ull_rd ( const __half h )
Convert a half to an unsigned 64-bit integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

unsigned long long int

  • h converted to an unsigned 64-bit integer.
Description

Convert the half-precision floating-point value h to an unsigned 64-bit integer in round-down mode. NaN inputs return 0x8000000000000000.

__device__ ​ unsigned long long int __half2ull_rn ( const __half h )
Convert a half to an unsigned 64-bit integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

unsigned long long int

  • h converted to an unsigned 64-bit integer.
Description

Convert the half-precision floating-point value h to an unsigned 64-bit integer in round-to-nearest-even mode. NaN inputs return 0x8000000000000000.

__device__ ​ unsigned long long int __half2ull_ru ( const __half h )
Convert a half to an unsigned 64-bit integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

unsigned long long int

  • h converted to an unsigned 64-bit integer.
Description

Convert the half-precision floating-point value h to an unsigned 64-bit integer in round-up mode. NaN inputs return 0x8000000000000000.

__host____device__ ​ unsigned long long int __half2ull_rz ( const __half h )
Convert a half to an unsigned 64-bit integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

unsigned long long int

  • h converted to an unsigned 64-bit integer.
Description

Convert the half-precision floating-point value h to an unsigned 64-bit integer in round-towards-zero mode. NaN inputs return 0x8000000000000000.

__device__ ​ unsigned short int __half2ushort_rd ( const __half h )
Convert a half to an unsigned short integer in round-down mode.
Parameters
h
- half. Is only being read.
Returns

unsigned short int

  • h converted to an unsigned short integer.
Description

Convert the half-precision floating-point value h to an unsigned short integer in round-down mode. NaN inputs are converted to 0.

__device__ ​ unsigned short int __half2ushort_rn ( const __half h )
Convert a half to an unsigned short integer in round-to-nearest-even mode.
Parameters
h
- half. Is only being read.
Returns

unsigned short int

  • h converted to an unsigned short integer.
Description

Convert the half-precision floating-point value h to an unsigned short integer in round-to-nearest-even mode. NaN inputs are converted to 0.

__device__ ​ unsigned short int __half2ushort_ru ( const __half h )
Convert a half to an unsigned short integer in round-up mode.
Parameters
h
- half. Is only being read.
Returns

unsigned short int

  • h converted to an unsigned short integer.
Description

Convert the half-precision floating-point value h to an unsigned short integer in round-up mode. NaN inputs are converted to 0.

__host____device__ ​ unsigned short int __half2ushort_rz ( const __half h )
Convert a half to an unsigned short integer in round-towards-zero mode.
Parameters
h
- half. Is only being read.
Returns

unsigned short int

  • h converted to an unsigned short integer.
Description

Convert the half-precision floating-point value h to an unsigned short integer in round-towards-zero mode. NaN inputs are converted to 0.

__host____device__ ​ short int __half_as_short ( const __half h )
Reinterprets bits in a half as a signed short integer.
Parameters
h
- half. Is only being read.
Returns

short int

  • The reinterpreted value.
Description

Reinterprets the bits in the half-precision floating-point number h as a signed short integer.

__host____device__ ​ unsigned short int __half_as_ushort ( const __half h )
Reinterprets bits in a half as an unsigned short integer.
Parameters
h
- half. Is only being read.
Returns

unsigned short int

  • The reinterpreted value.
Description

Reinterprets the bits in the half-precision floating-point h as an unsigned short number.

__host____device____half2 __halves2half2 ( const __half a, const __half b )
Combines two half numbers into one half2 number.
Parameters
a
- half. Is only being read.
b
- half. Is only being read.
Returns

half2

  • The half2 with one half equal to a and the other to b.
Description

Combines two input half number a and b into one half2 number. Input a is stored in low 16 bits of the return value, input b is stored in high 16 bits of the return value.

__host____device__ ​ float __high2float ( const __half2 a )
Converts high 16 bits of half2 to float and returns the result.
Parameters
a
- half2. Is only being read.
Returns

float

  • The high 16 bits of a converted to float.
Description

Converts high 16 bits of half2 input a to 32-bit floating-point number and returns the result.

__host____device____half __high2half ( const __half2 a )
Returns high 16 bits of half2 input.
Parameters
a
- half2. Is only being read.
Returns

half

  • The high 16 bits of the input.
Description

Returns high 16 bits of half2 input a.

__host____device____half2 __high2half2 ( const __half2 a )
Extracts high 16 bits from half2 input.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The half2 with both halves equal to the high 16 bits of the input.
Description

Extracts high 16 bits from half2 input a and returns a new half2 number which has both halves equal to the extracted bits.

__host____device____half2 __highs2half2 ( const __half2 a, const __half2 b )
Extracts high 16 bits from each of the two half2 inputs and combines into one half2 number.
Parameters
a
- half2. Is only being read.
b
- half2. Is only being read.
Returns

half2

  • The high 16 bits of a and of b.
Description

Extracts high 16 bits from each of the two half2 inputs and combines into one half2 number. High 16 bits from input a is stored in low 16 bits of the return value, high 16 bits from input b is stored in high 16 bits of the return value.

__host____device____half __int2half_rd ( const int  i )
Convert a signed integer to a half in round-down mode.
Parameters
i
- int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __int2half_rn ( const int  i )
Convert a signed integer to a half in round-to-nearest-even mode.
Parameters
i
- int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __int2half_ru ( const int  i )
Convert a signed integer to a half in round-up mode.
Parameters
i
- int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __int2half_rz ( const int  i )
Convert a signed integer to a half in round-towards-zero mode.
Parameters
i
- int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed integer value i to a half-precision floating-point value in round-towards-zero mode.

__device____half __ldca ( const __half* ptr )
Generates a `ld.global.ca` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldca ( const __half2* ptr )
Generates a `ld.global.ca` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half __ldcg ( const __half* ptr )
Generates a `ld.global.cg` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldcg ( const __half2* ptr )
Generates a `ld.global.cg` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half __ldcs ( const __half* ptr )
Generates a `ld.global.cs` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldcs ( const __half2* ptr )
Generates a `ld.global.cs` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half __ldcv ( const __half* ptr )
Generates a `ld.global.cv` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldcv ( const __half2* ptr )
Generates a `ld.global.cv` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half __ldg ( const __half* ptr )
Generates a `ld.global.nc` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldg ( const __half2* ptr )
Generates a `ld.global.nc` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

defined(__CUDA_ARCH__) || (__CUDA_ARCH__ >= 300)

__device____half __ldlu ( const __half* ptr )
Generates a `ld.global.lu` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__device____half2 __ldlu ( const __half2* ptr )
Generates a `ld.global.lu` load instruction.
Parameters
ptr
- memory location
Returns

The value pointed by `ptr`

Description

__host____device____half __ll2half_rd ( const long long int i )
Convert a signed 64-bit integer to a half in round-down mode.
Parameters
i
- long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed 64-bit integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __ll2half_rn ( const long long int i )
Convert a signed 64-bit integer to a half in round-to-nearest-even mode.
Parameters
i
- long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed 64-bit integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __ll2half_ru ( const long long int i )
Convert a signed 64-bit integer to a half in round-up mode.
Parameters
i
- long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed 64-bit integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __ll2half_rz ( const long long int i )
Convert a signed 64-bit integer to a half in round-towards-zero mode.
Parameters
i
- long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed 64-bit integer value i to a half-precision floating-point value in round-towards-zero mode.

__host____device__ ​ float __low2float ( const __half2 a )
Converts low 16 bits of half2 to float and returns the result.
Parameters
a
- half2. Is only being read.
Returns

float

  • The low 16 bits of a converted to float.
Description

Converts low 16 bits of half2 input a to 32-bit floating-point number and returns the result.

__host____device____half __low2half ( const __half2 a )
Returns low 16 bits of half2 input.
Parameters
a
- half2. Is only being read.
Returns

half

  • Returns half which contains low 16 bits of the input a.
Description

Returns low 16 bits of half2 input a.

__host____device____half2 __low2half2 ( const __half2 a )
Extracts low 16 bits from half2 input.
Parameters
a
- half2. Is only being read.
Returns

half2

  • The half2 with both halves equal to the low 16 bits of the input.
Description

Extracts low 16 bits from half2 input a and returns a new half2 number which has both halves equal to the extracted bits.

__host____device____half2 __lowhigh2highlow ( const __half2 a )
Swaps both halves of the half2 input.
Parameters
a
- half2. Is only being read.
Returns

half2

  • a with its halves being swapped.
Description

Swaps both halves of the half2 input and returns a new half2 number with swapped halves.

__host____device____half2 __lows2half2 ( const __half2 a, const __half2 b )
Extracts low 16 bits from each of the two half2 inputs and combines into one half2 number.
Parameters
a
- half2. Is only being read.
b
- half2. Is only being read.
Returns

half2

  • The low 16 bits of a and of b.
Description

Extracts low 16 bits from each of the two half2 inputs and combines into one half2 number. Low 16 bits from input a is stored in low 16 bits of the return value, low 16 bits from input b is stored in high 16 bits of the return value.

__device____half __shfl_down_sync ( const unsigned mask, const __half var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with higher ID relative to the caller.
Parameters
mask
- unsigned int. Is only being read.
var
- half. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 2-byte word referenced by var from the source thread ID as half. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by adding delta to the caller's thread ID. The value of var held by the resulting thread ID is returned: this has the effect of shifting var down the warp by delta threads. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. As for __shfl_up_sync(), the ID number of the source thread will not wrap around the value of width and so the upper delta threads will remain unchanged.

Note:

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

__device____half2 __shfl_down_sync ( const unsigned mask, const __half2 var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with higher ID relative to the caller.
Parameters
mask
- unsigned int. Is only being read.
var
- half2. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 4-byte word referenced by var from the source thread ID as half2. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by adding delta to the caller's thread ID. The value of var held by the resulting thread ID is returned: this has the effect of shifting var down the warp by delta threads. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. As for __shfl_up_sync(), the ID number of the source thread will not wrap around the value of width and so the upper delta threads will remain unchanged.

Note:

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

__device____half __shfl_sync ( const unsigned mask, const __half var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Direct copy from indexed thread.
Parameters
mask
- unsigned int. Is only being read.
var
- half. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 2-byte word referenced by var from the source thread ID as half. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Returns the value of var held by the thread whose ID is given by delta. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. If delta is outside the range [0:width-1], the value returned corresponds to the value of var held by the delta modulo width (i.e. within the same subsection). width must have a value which is a power of 2; results are undefined if width is not a power of 2, or is a number greater than warpSize.

Note:

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

__device____half2 __shfl_sync ( const unsigned mask, const __half2 var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Direct copy from indexed thread.
Parameters
mask
- unsigned int. Is only being read.
var
- half2. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 4-byte word referenced by var from the source thread ID as half2. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Returns the value of var held by the thread whose ID is given by delta. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. If delta is outside the range [0:width-1], the value returned corresponds to the value of var held by the delta modulo width (i.e. within the same subsection). width must have a value which is a power of 2; results are undefined if width is not a power of 2, or is a number greater than warpSize.

__device____half __shfl_up_sync ( const unsigned mask, const __half var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with lower ID relative to the caller.
Parameters
mask
- unsigned int. Is only being read.
var
- half. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 2-byte word referenced by var from the source thread ID as half. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by subtracting delta from the caller's lane ID. The value of var held by the resulting lane ID is returned: in effect, var is shifted up the warp by delta threads. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. The source thread index will not wrap around the value of width, so effectively the lower delta threads will be unchanged. width must have a value which is a power of 2; results are undefined if width is not a power of 2, or is a number greater than warpSize.

Note:

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

__device____half2 __shfl_up_sync ( const unsigned mask, const __half2 var, const unsigned int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread with lower ID relative to the caller.
Parameters
mask
- unsigned int. Is only being read.
var
- half2. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 4-byte word referenced by var from the source thread ID as half2. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by subtracting delta from the caller's lane ID. The value of var held by the resulting lane ID is returned: in effect, var is shifted up the warp by delta threads. If width is less than warpSize then each subsection of the warp behaves as a separate entity with a starting logical thread ID of 0. The source thread index will not wrap around the value of width, so effectively the lower delta threads will be unchanged. width must have a value which is a power of 2; results are undefined if width is not a power of 2, or is a number greater than warpSize.

Note:

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

__device____half __shfl_xor_sync ( const unsigned mask, const __half var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread based on bitwise XOR of own thread ID.
Parameters
mask
- unsigned int. Is only being read.
var
- half. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 2-byte word referenced by var from the source thread ID as half. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by performing a bitwise XOR of the caller's thread ID with mask: the value of var held by the resulting thread ID is returned. If width is less than warpSize then each group of width consecutive threads are able to access elements from earlier groups of threads, however if they attempt to access elements from later groups of threads their own value of var will be returned. This mode implements a butterfly addressing pattern such as is used in tree reduction and broadcast.

Note:

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

__device____half2 __shfl_xor_sync ( const unsigned mask, const __half2 var, const int  delta, const int  width = warpSize )
Exchange a variable between threads within a warp. Copy from a thread based on bitwise XOR of own thread ID.
Parameters
mask
- unsigned int. Is only being read.
var
- half2. Is only being read.
delta
- int. Is only being read.
width
- int. Is only being read.
Returns

Returns the 4-byte word referenced by var from the source thread ID as half2. If the source thread ID is out of range or the source thread has exited, the calling thread's own var is returned.

Description

Calculates a source thread ID by performing a bitwise XOR of the caller's thread ID with mask: the value of var held by the resulting thread ID is returned. If width is less than warpSize then each group of width consecutive threads are able to access elements from earlier groups of threads, however if they attempt to access elements from later groups of threads their own value of var will be returned. This mode implements a butterfly addressing pattern such as is used in tree reduction and broadcast.

Note:

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

__host____device____half __short2half_rd ( const short int i )
Convert a signed short integer to a half in round-down mode.
Parameters
i
- short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed short integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __short2half_rn ( const short int i )
Convert a signed short integer to a half in round-to-nearest-even mode.
Parameters
i
- short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed short integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __short2half_ru ( const short int i )
Convert a signed short integer to a half in round-up mode.
Parameters
i
- short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed short integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __short2half_rz ( const short int i )
Convert a signed short integer to a half in round-towards-zero mode.
Parameters
i
- short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the signed short integer value i to a half-precision floating-point value in round-towards-zero mode.

__host____device____half __short_as_half ( const short int i )
Reinterprets bits in a signed short integer as a half.
Parameters
i
- short int. Is only being read.
Returns

half

  • The reinterpreted value.
Description

Reinterprets the bits in the signed short integer i as a half-precision floating-point number.

__device__ ​ void __stcg ( const __half* ptr, const __half value )
Generates a `st.global.cg` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stcg ( const __half2* ptr, const __half2 value )
Generates a `st.global.cg` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stcs ( const __half* ptr, const __half value )
Generates a `st.global.cs` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stcs ( const __half2* ptr, const __half2 value )
Generates a `st.global.cs` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stwb ( const __half* ptr, const __half value )
Generates a `st.global.wb` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stwb ( const __half2* ptr, const __half2 value )
Generates a `st.global.wb` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stwt ( const __half* ptr, const __half value )
Generates a `st.global.wt` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__device__ ​ void __stwt ( const __half2* ptr, const __half2 value )
Generates a `st.global.wt` store instruction.
Parameters
ptr
- memory location
value
- the value to be stored
Description

__host____device____half __uint2half_rd ( const unsigned int  i )
Convert an unsigned integer to a half in round-down mode.
Parameters
i
- unsigned int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __uint2half_rn ( const unsigned int  i )
Convert an unsigned integer to a half in round-to-nearest-even mode.
Parameters
i
- unsigned int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __uint2half_ru ( const unsigned int  i )
Convert an unsigned integer to a half in round-up mode.
Parameters
i
- unsigned int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __uint2half_rz ( const unsigned int  i )
Convert an unsigned integer to a half in round-towards-zero mode.
Parameters
i
- unsigned int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned integer value i to a half-precision floating-point value in round-towards-zero mode.

__host____device____half __ull2half_rd ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-down mode.
Parameters
i
- unsigned long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned 64-bit integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __ull2half_rn ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-to-nearest-even mode.
Parameters
i
- unsigned long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned 64-bit integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __ull2half_ru ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-up mode.
Parameters
i
- unsigned long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned 64-bit integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __ull2half_rz ( const unsigned long long int i )
Convert an unsigned 64-bit integer to a half in round-towards-zero mode.
Parameters
i
- unsigned long long int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned 64-bit integer value i to a half-precision floating-point value in round-towards-zero mode.

__host____device____half __ushort2half_rd ( const unsigned short int i )
Convert an unsigned short integer to a half in round-down mode.
Parameters
i
- unsigned short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned short integer value i to a half-precision floating-point value in round-down mode.

__host____device____half __ushort2half_rn ( const unsigned short int i )
Convert an unsigned short integer to a half in round-to-nearest-even mode.
Parameters
i
- unsigned short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned short integer value i to a half-precision floating-point value in round-to-nearest-even mode.

__host____device____half __ushort2half_ru ( const unsigned short int i )
Convert an unsigned short integer to a half in round-up mode.
Parameters
i
- unsigned short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned short integer value i to a half-precision floating-point value in round-up mode.

__host____device____half __ushort2half_rz ( const unsigned short int i )
Convert an unsigned short integer to a half in round-towards-zero mode.
Parameters
i
- unsigned short int. Is only being read.
Returns

half

  • i converted to half.
Description

Convert the unsigned short integer value i to a half-precision floating-point value in round-towards-zero mode.

__host____device____half __ushort_as_half ( const unsigned short int i )
Reinterprets bits in an unsigned short integer as a half.
Parameters
i
- unsigned short int. Is only being read.
Returns

half

  • The reinterpreted value.
Description

Reinterprets the bits in the unsigned short integer i as a half-precision floating-point number.

__host____device____half2 make_half2 ( const __half x, const __half y )
Vector function, combines two __half numbers into one __half2 number.
Parameters
x
- half. Is only being read.
y
- half. Is only being read.
Returns

__half2

  • The __half2 vector with one half equal to x and the other to y.
Description

Combines two input __half number x and y into one __half2 number. Input x is stored in low 16 bits of the return value, input y is stored in high 16 bits of the return value.