This example showcases the usage of rocBLAS' Level 1 NRM2 function. NRM2 is an Euclidean norm operator applied on
- Read in and parse command line parameters.
- Allocate and initialize host vector.
- Compute CPU reference result.
- Create a rocBLAS handle.
- Allocate and initialize device vector.
- Use the rocBLAS handle to enable passing the
h_result
parameter via a pointer to host memory. - Call
rocblas_snrm2()
asynchronous rocBLAS Euclidean norm function. - Copy the result from device to host.
- Destroy the rocBLAS handle, release device memory.
- Validate the output by comparing it to the CPU reference result.
The application provides the following optional command line arguments:
-
-x
or--incx
. The stride between consecutive values in the data array that makes up vector$x$ , must be greater than zero. Its default value is 1. -
-n
. The number of elements in vectors$x$ . Its default value is 5.
- rocBLAS is initialized by calling
rocblas_create_handle(rocblas_handle*)
and it is terminated by callingrocblas_destroy_handle(rocblas_handle)
. - The pointer mode controls whether scalar parameters must be allocated on the host (
rocblas_pointer_mode_host
) or on the device (rocblas_pointer_mode_device
). It is controlled byrocblas_set_pointer_mode
. rocblas_[sdhcz]nrm2
computes the Euclidean norm of a vector as defined above. Depending on the character matched in[sdhcz]
, the norm can be obtained with different precisions:s
(single-precision:rocblas_float
)d
(double-precision:rocblas_double
)h
(half-precision:rocblas_half
)c
(single-precision complex:rocblas_complex
)z
(double-precision complex:rocblas_double_complex
).
rocblas_create_handle
rocblas_destroy_handle
rocblas_handle
rocblas_int
rocblas_set_pointer_mode
rocblas_pointer_mode_host
rocblas_snrm2
rocblas_status
rocblas_status_success
rocblas_status_to_string
hipFree
hipMalloc
hipMemcpy
hipMemcpyHostToDevice