123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #ifndef __STARPU_CUDA_H__
- #define __STARPU_CUDA_H__
- #include <starpu_config.h>
- #if defined STARPU_USE_CUDA && !defined STARPU_DONT_INCLUDE_CUDA_HEADERS
- #include <cuda.h>
- #include <cuda_runtime.h>
- #include <cuda_runtime_api.h>
- #ifdef STARPU_HAVE_LIBNVIDIA_ML
- #include <nvml.h>
- #endif
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- void starpu_cublas_report_error(const char *func, const char *file, int line, int status);
- #define STARPU_CUBLAS_REPORT_ERROR(status) starpu_cublas_report_error(__starpu_func__, __FILE__, __LINE__, status)
- void starpu_cuda_report_error(const char *func, const char *file, int line, cudaError_t status);
- #define STARPU_CUDA_REPORT_ERROR(status) starpu_cuda_report_error(__starpu_func__, __FILE__, __LINE__, status)
- cudaStream_t starpu_cuda_get_local_stream(void);
- const struct cudaDeviceProp *starpu_cuda_get_device_properties(unsigned workerid);
- int starpu_cuda_copy_async_sync(void *src_ptr, unsigned src_node, void *dst_ptr, unsigned dst_node, size_t ssize, cudaStream_t stream, enum cudaMemcpyKind kind);
- int starpu_cuda_copy2d_async_sync(void *src_ptr, unsigned src_node, void *dst_ptr, unsigned dst_node,
- size_t blocksize,
- size_t numblocks, size_t ld_src, size_t ld_dst,
- cudaStream_t stream, enum cudaMemcpyKind kind);
- int starpu_cuda_copy3d_async_sync(void *src_ptr, unsigned src_node, void *dst_ptr, unsigned dst_node,
- size_t blocksize,
- size_t numblocks_1, size_t ld1_src, size_t ld1_dst,
- size_t numblocks_2, size_t ld2_src, size_t ld2_dst,
- cudaStream_t stream, enum cudaMemcpyKind kind);
- void starpu_cuda_set_device(unsigned devid);
- #ifdef STARPU_HAVE_LIBNVIDIA_ML
- nvmlDevice_t starpu_cuda_get_nvmldev(unsigned devid);
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif
- #endif
|