## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", eval = FALSE)

## ----windows-paths------------------------------------------------------------
# Sys.setenv(
#   CUDAVERSE_CUBLAS_PATH =
#     "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.x/bin/cublas64_12.dll",
#   CUDAVERSE_CUSOLVER_PATH =
#     "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.x/bin/cusolver64_11.dll"
# )

## ----linux-paths--------------------------------------------------------------
# Sys.setenv(
#   CUDAVERSE_CUBLAS_PATH = "/absolute/path/to/libcublas.so.12",
#   CUDAVERSE_CUSOLVER_PATH = "/absolute/path/to/libcusolver.so.11"
# )

## ----install------------------------------------------------------------------
# # install.packages("pak")
# pak::pak("cudaverse/cudaverse@v0.4.1")
# library(cudaverse)

## ----diagnostics--------------------------------------------------------------
# check <- cuda_diagnostics()
# check$summary
# check$next_steps

## ----strict-smoke-------------------------------------------------------------
# cuda_select_device("cuda")
# 
# set.seed(1)
# x_gpu <- cuda_tensor(
#   matrix(rnorm(1024^2), nrow = 1024),
#   device = "cuda",
#   dtype = "float32"
# )
# y_gpu <- tensor_matmul(x_gpu, x_gpu)
# 
# tensor_device(y_gpu)
# cuda_provenance(y_gpu)
# cuda_memory_info("cuda")

