|
Simple GPU 1.0
Fortran GPU Computing Library with transparent CPU/GPU support
|
#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdbool.h>#include <assert.h>
Include dependency graph for gpu_cpu.c:Go to the source code of this file.
Functions | |
| int | gpu_ndevices () |
| void | gpu_set_device (int32_t i) |
| void | gpu_get_memory (size_t *free, size_t *total) |
| void | gpu_allocate (void **ptr, const int64_t n) |
| void | gpu_deallocate (void **ptr) |
| void | gpu_free (void **ptr) |
| void | gpu_upload (const void *cpu_ptr, void *gpu_ptr, const int64_t n) |
| void | gpu_download (const void *gpu_ptr, void *cpu_ptr, const int64_t n) |
| void | gpu_copy (const void *gpu_ptr_src, void *gpu_ptr_dest, const int64_t n) |
| void | gpu_stream_create (void **ptr) |
| void | gpu_stream_destroy (void **ptr) |
| void | gpu_set_stream (void *handle, void *stream) |
| void | gpu_synchronize () |
| void | gpu_stream_synchronize (void *stream) |
| static bool | check_int32_overflow (int64_t value, const char *name) |
| Check if an int64_t value can be safely converted to int32_t. | |
| void | gpu_blas_create (void **handle) |
| void | gpu_blas_destroy (void **handle) |
| double | ddot_ (const int32_t *n, const double *x, const int32_t *incx, const double *y, const int32_t *incy) |
| void | gpu_ddot (void *handle, const int64_t n, const double *x, const int64_t incx, const double *y, const int64_t incy, double *result) |
| float | sdot_ (const int32_t *n, const float *x, const int32_t *incx, const float *y, const int32_t *incy) |
| void | gpu_sdot (void *handle, const int64_t n, const float *x, const int64_t incx, const float *y, const int64_t incy, float *result) |
| void | dgemv_ (const char *transa, const int32_t *m, const int32_t *n, const double *alpha, const double *a, const int32_t *lda, const double *x, const int32_t *incx, const double *beta, double *y, const int32_t *incy) |
| void | gpu_dgemv (void *handle, const char *transa, const int64_t m, const int64_t n, const double *alpha, const double *a, const int64_t lda, const double *x, const int64_t incx, const double *beta, double *y, const int64_t incy) |
| void | sgemv_ (const char *transa, const int32_t *m, const int32_t *n, const float *alpha, const float *a, const int32_t *lda, const float *x, const int32_t *incx, const float *beta, float *y, const int32_t *incy) |
| void | gpu_sgemv (void *handle, const char *transa, const int64_t m, const int64_t n, const float *alpha, const float *a, const int64_t lda, const float *x, const int64_t incx, const float *beta, float *y, const int64_t incy) |
| void | dgemm_ (const char *transa, const char *transb, const int32_t *m, const int32_t *n, const int32_t *k, const double *alpha, const double *a, const int32_t *lda, const double *b, const int32_t *ldb, const double *beta, double *c, const int32_t *ldc) |
| void | gpu_dgemm (void *handle, const char *transa, const char *transb, const int64_t m, const int64_t n, const int64_t k, const double *alpha, const double *a, const int64_t lda, const double *b, const int64_t ldb, const double *beta, double *c, const int64_t ldc) |
| void | sgemm_ (const char *transa, const char *transb, const int32_t *m, const int32_t *n, const int32_t *k, const float *alpha, const float *a, const int32_t *lda, const float *b, const int32_t *ldb, const float *beta, float *c, const int32_t *ldc) |
| void | gpu_sgemm (void *handle, const char *transa, const char *transb, const int64_t m, const int64_t n, const int64_t k, const float *alpha, const float *a, const int64_t lda, const float *b, const int64_t ldb, const float *beta, float *c, const int64_t ldc) |
| void | gpu_dgeam (void *handle, const char *transa, const char *transb, const int64_t m, const int64_t n, const double *alpha, const double *a, const int64_t lda, const double *beta, const double *b, const int64_t ldb, double *c, const int64_t ldc) |
| void | gpu_sgeam (void *handle, const char *transa, const char *transb, const int64_t m, const int64_t n, const float *alpha, const float *a, const int64_t lda, const float *beta, const float *b, const int64_t ldb, float *c, const int64_t ldc) |
|
inlinestatic |
| double ddot_ | ( | const int32_t * | n, |
| const double * | x, | ||
| const int32_t * | incx, | ||
| const double * | y, | ||
| const int32_t * | incy | ||
| ) |
Here is the caller graph for this function:| void dgemm_ | ( | const char * | transa, |
| const char * | transb, | ||
| const int32_t * | m, | ||
| const int32_t * | n, | ||
| const int32_t * | k, | ||
| const double * | alpha, | ||
| const double * | a, | ||
| const int32_t * | lda, | ||
| const double * | b, | ||
| const int32_t * | ldb, | ||
| const double * | beta, | ||
| double * | c, | ||
| const int32_t * | ldc | ||
| ) |
Here is the caller graph for this function:| void dgemv_ | ( | const char * | transa, |
| const int32_t * | m, | ||
| const int32_t * | n, | ||
| const double * | alpha, | ||
| const double * | a, | ||
| const int32_t * | lda, | ||
| const double * | x, | ||
| const int32_t * | incx, | ||
| const double * | beta, | ||
| double * | y, | ||
| const int32_t * | incy | ||
| ) |
Here is the caller graph for this function:| void gpu_copy | ( | const void * | gpu_ptr_src, |
| void * | gpu_ptr_dest, | ||
| const int64_t | n | ||
| ) |
| void gpu_ddot | ( | void * | handle, |
| const int64_t | n, | ||
| const double * | x, | ||
| const int64_t | incx, | ||
| const double * | y, | ||
| const int64_t | incy, | ||
| double * | result | ||
| ) |
| void gpu_deallocate | ( | void ** | ptr | ) |
| void gpu_dgeam | ( | void * | handle, |
| const char * | transa, | ||
| const char * | transb, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const double * | alpha, | ||
| const double * | a, | ||
| const int64_t | lda, | ||
| const double * | beta, | ||
| const double * | b, | ||
| const int64_t | ldb, | ||
| double * | c, | ||
| const int64_t | ldc | ||
| ) |
| void gpu_dgemm | ( | void * | handle, |
| const char * | transa, | ||
| const char * | transb, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const int64_t | k, | ||
| const double * | alpha, | ||
| const double * | a, | ||
| const int64_t | lda, | ||
| const double * | b, | ||
| const int64_t | ldb, | ||
| const double * | beta, | ||
| double * | c, | ||
| const int64_t | ldc | ||
| ) |
| void gpu_dgemv | ( | void * | handle, |
| const char * | transa, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const double * | alpha, | ||
| const double * | a, | ||
| const int64_t | lda, | ||
| const double * | x, | ||
| const int64_t | incx, | ||
| const double * | beta, | ||
| double * | y, | ||
| const int64_t | incy | ||
| ) |
| void gpu_download | ( | const void * | gpu_ptr, |
| void * | cpu_ptr, | ||
| const int64_t | n | ||
| ) |
| void gpu_free | ( | void ** | ptr | ) |
| void gpu_sdot | ( | void * | handle, |
| const int64_t | n, | ||
| const float * | x, | ||
| const int64_t | incx, | ||
| const float * | y, | ||
| const int64_t | incy, | ||
| float * | result | ||
| ) |
| void gpu_sgeam | ( | void * | handle, |
| const char * | transa, | ||
| const char * | transb, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const float * | alpha, | ||
| const float * | a, | ||
| const int64_t | lda, | ||
| const float * | beta, | ||
| const float * | b, | ||
| const int64_t | ldb, | ||
| float * | c, | ||
| const int64_t | ldc | ||
| ) |
| void gpu_sgemm | ( | void * | handle, |
| const char * | transa, | ||
| const char * | transb, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const int64_t | k, | ||
| const float * | alpha, | ||
| const float * | a, | ||
| const int64_t | lda, | ||
| const float * | b, | ||
| const int64_t | ldb, | ||
| const float * | beta, | ||
| float * | c, | ||
| const int64_t | ldc | ||
| ) |
| void gpu_sgemv | ( | void * | handle, |
| const char * | transa, | ||
| const int64_t | m, | ||
| const int64_t | n, | ||
| const float * | alpha, | ||
| const float * | a, | ||
| const int64_t | lda, | ||
| const float * | x, | ||
| const int64_t | incx, | ||
| const float * | beta, | ||
| float * | y, | ||
| const int64_t | incy | ||
| ) |
| void gpu_upload | ( | const void * | cpu_ptr, |
| void * | gpu_ptr, | ||
| const int64_t | n | ||
| ) |
| float sdot_ | ( | const int32_t * | n, |
| const float * | x, | ||
| const int32_t * | incx, | ||
| const float * | y, | ||
| const int32_t * | incy | ||
| ) |
Here is the caller graph for this function:| void sgemm_ | ( | const char * | transa, |
| const char * | transb, | ||
| const int32_t * | m, | ||
| const int32_t * | n, | ||
| const int32_t * | k, | ||
| const float * | alpha, | ||
| const float * | a, | ||
| const int32_t * | lda, | ||
| const float * | b, | ||
| const int32_t * | ldb, | ||
| const float * | beta, | ||
| float * | c, | ||
| const int32_t * | ldc | ||
| ) |
Here is the caller graph for this function:| void sgemv_ | ( | const char * | transa, |
| const int32_t * | m, | ||
| const int32_t * | n, | ||
| const float * | alpha, | ||
| const float * | a, | ||
| const int32_t * | lda, | ||
| const float * | x, | ||
| const int32_t * | incx, | ||
| const float * | beta, | ||
| float * | y, | ||
| const int32_t * | incy | ||
| ) |
Here is the caller graph for this function: