# Conjugate Gradients ## Description This example is an adaptation from the conjugateGradientCudaGraphs CUDA sample that can be found in [NVIDIA's github](https://github.com/NVIDIA/cuda-samples) using OmpSs-2. It is meant to display how one can use cuBLAS and other CUDA libraries by leveraging the `nanos6_get_current_cuda_stream()` API call. It also uses the *delayed taskwait* pattern, by which each iteration checks if the previous one converged, to prevent having to use a full taskwait in every iteration to check for convergence. ## Execution instructions This benchmark can only be executed in an environment with one GPU device (no support for multiple GPUs), and with a CUDA installation which supports unified memory and has the cuBLAS and cuSPARSE libraries. To run the program use: ``` make run ``` The previous command will also build the program in case it is not already.