Simple GPU 1.0
Fortran GPU Computing Library with transparent CPU/GPU support
Loading...
Searching...
No Matches
simple_gpu.F90 File Reference

Go to the source code of this file.

Data Types

type  gpu::gpu_double1
 1-dimensional array of double precision values More...
 
type  gpu::gpu_double2
 2-dimensional array of double precision values More...
 
type  gpu::gpu_double3
 3-dimensional array of double precision values More...
 
type  gpu::gpu_double4
 4-dimensional array of double precision values More...
 
type  gpu::gpu_double5
 5-dimensional array of double precision values More...
 
type  gpu::gpu_double6
 6-dimensional array of double precision values More...
 
type  gpu::gpu_real1
 1-dimensional array of single precision values More...
 
type  gpu::gpu_real2
 2-dimensional array of single precision values More...
 
type  gpu::gpu_real3
 3-dimensional array of single precision values More...
 
type  gpu::gpu_real4
 4-dimensional array of single precision values More...
 
type  gpu::gpu_real5
 5-dimensional array of single precision values More...
 
type  gpu::gpu_real6
 6-dimensional array of single precision values More...
 
type  gpu::gpu_blas
 Handle for BLAS operations. More...
 
type  gpu::gpu_stream
 Handle for CUDA streams. More...
 
interface  gpu::gpu_ndevices
 Get number of GPU devices (C binding) More...
 
interface  gpu::gpu_set_device
 Set active GPU device (C binding) More...
 
interface  gpu::gpu_get_memory
 Query GPU memory usage (C binding) More...
 
interface  gpu::gpu_allocate_c
 Allocate GPU/CPU memory (C binding) More...
 
interface  gpu::gpu_deallocate_c
 Free GPU/CPU memory (C binding) More...
 
interface  gpu::gpu_upload_c
 Upload data to GPU (C binding) More...
 
interface  gpu::gpu_download_c
 
interface  gpu::gpu_copy_c
 
interface  gpu::gpu_stream_create_c
 
interface  gpu::gpu_stream_destroy_c
 
interface  gpu::gpu_set_stream_c
 
interface  gpu::gpu_stream_synchronize
 
interface  gpu::gpu_synchronize
 
interface  gpu::gpu_blas_create_c
 
interface  gpu::gpu_blas_destroy_c
 
interface  gpu::gpu_ddot_c
 
interface  gpu::gpu_sdot_c
 
interface  gpu::gpu_dgeam_c
 
interface  gpu::gpu_sgeam_c
 
interface  gpu::gpu_dgemv_c
 
interface  gpu::gpu_sgemv_c
 
interface  gpu::gpu_dgemm_c
 
interface  gpu::gpu_sgemm_c
 
interface  gpu::gpu_allocate
 Allocate GPU/CPU memory for arrays. More...
 
interface  gpu::gpu_deallocate
 Free GPU/CPU memory. More...
 
interface  gpu::gpu_upload
 Upload data from host (CPU) to device (GPU) More...
 
interface  gpu::gpu_download
 Download data from device (GPU) to host (CPU) More...
 
interface  gpu::gpu_copy
 Copy data between GPU arrays. More...
 

Modules

module  gpu
 Simple GPU - Fortran GPU Computing Library.
 

Functions/Subroutines

subroutine gpu::gpu_allocate_double1 (ptr, s)
 Allocate 1D double precision array (32-bit dimensions)
 
subroutine gpu::gpu_allocate_double2 (ptr, s1, s2)
 
subroutine gpu::gpu_allocate_double3 (ptr, s1, s2, s3)
 
subroutine gpu::gpu_allocate_double4 (ptr, s1, s2, s3, s4)
 
subroutine gpu::gpu_allocate_double5 (ptr, s1, s2, s3, s4, s5)
 
subroutine gpu::gpu_allocate_double6 (ptr, s1, s2, s3, s4, s5, s6)
 
subroutine gpu::gpu_allocate_double1_64 (ptr, s)
 
subroutine gpu::gpu_allocate_double2_64 (ptr, s1, s2)
 
subroutine gpu::gpu_allocate_double3_64 (ptr, s1, s2, s3)
 
subroutine gpu::gpu_allocate_double4_64 (ptr, s1, s2, s3, s4)
 
subroutine gpu::gpu_allocate_double5_64 (ptr, s1, s2, s3, s4, s5)
 
subroutine gpu::gpu_allocate_double6_64 (ptr, s1, s2, s3, s4, s5, s6)
 
subroutine gpu::gpu_allocate_real1 (ptr, s)
 
subroutine gpu::gpu_allocate_real2 (ptr, s1, s2)
 
subroutine gpu::gpu_allocate_real3 (ptr, s1, s2, s3)
 
subroutine gpu::gpu_allocate_real4 (ptr, s1, s2, s3, s4)
 
subroutine gpu::gpu_allocate_real5 (ptr, s1, s2, s3, s4, s5)
 
subroutine gpu::gpu_allocate_real6 (ptr, s1, s2, s3, s4, s5, s6)
 
subroutine gpu::gpu_allocate_real1_64 (ptr, s)
 
subroutine gpu::gpu_allocate_real2_64 (ptr, s1, s2)
 
subroutine gpu::gpu_allocate_real3_64 (ptr, s1, s2, s3)
 
subroutine gpu::gpu_allocate_real4_64 (ptr, s1, s2, s3, s4)
 
subroutine gpu::gpu_allocate_real5_64 (ptr, s1, s2, s3, s4, s5)
 
subroutine gpu::gpu_allocate_real6_64 (ptr, s1, s2, s3, s4, s5, s6)
 
subroutine gpu::gpu_deallocate_double1 (ptr)
 
subroutine gpu::gpu_deallocate_double2 (ptr)
 
subroutine gpu::gpu_deallocate_double3 (ptr)
 
subroutine gpu::gpu_deallocate_double4 (ptr)
 
subroutine gpu::gpu_deallocate_double5 (ptr)
 
subroutine gpu::gpu_deallocate_double6 (ptr)
 
subroutine gpu::gpu_deallocate_real1 (ptr)
 
subroutine gpu::gpu_deallocate_real2 (ptr)
 
subroutine gpu::gpu_deallocate_real3 (ptr)
 
subroutine gpu::gpu_deallocate_real4 (ptr)
 
subroutine gpu::gpu_deallocate_real5 (ptr)
 
subroutine gpu::gpu_deallocate_real6 (ptr)
 
subroutine gpu::gpu_upload_double0 (cpu_ptr, gpu_ptr, n)
 
subroutine gpu::gpu_upload_double1 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_double2 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_double3 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_double4 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_double5 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_double6 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real0 (cpu_ptr, gpu_ptr, n)
 
subroutine gpu::gpu_upload_real1 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real2 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real3 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real4 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real5 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_upload_real6 (cpu_ptr, gpu_ptr)
 
subroutine gpu::gpu_download_double0 (gpu_ptr, cpu_ptr, n)
 
subroutine gpu::gpu_download_double1 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_double2 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_double3 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_double4 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_double5 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_double6 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real0 (gpu_ptr, cpu_ptr, n)
 
subroutine gpu::gpu_download_real1 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real2 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real3 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real4 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real5 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_download_real6 (gpu_ptr, cpu_ptr)
 
subroutine gpu::gpu_copy_double0 (gpu_ptr_src, gpu_ptr_dest, n)
 
subroutine gpu::gpu_copy_double1 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_double2 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_double3 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_double4 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_double5 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_double6 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real0 (gpu_ptr_src, gpu_ptr_dest, n)
 
subroutine gpu::gpu_copy_real1 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real2 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real3 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real4 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real5 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_copy_real6 (gpu_ptr_src, gpu_ptr_dest)
 
subroutine gpu::gpu_stream_create (stream)
 
subroutine gpu::gpu_stream_destroy (stream)
 
subroutine gpu::gpu_set_stream (handle, stream)
 
subroutine gpu::gpu_blas_create (handle)
 Create a BLAS handle.
 
subroutine gpu::gpu_blas_destroy (handle)
 Destroy a BLAS handle.
 
subroutine gpu::gpu_ddot (handle, n, dx, incx, dy, incy, res)
 Double precision dot product (32-bit dimensions)
 
subroutine gpu::gpu_ddot_64 (handle, n, dx, incx, dy, incy, res)
 Double precision dot product (64-bit dimensions)
 
subroutine gpu::gpu_sdot (handle, n, dx, incx, dy, incy, res)
 
subroutine gpu::gpu_sdot_64 (handle, n, dx, incx, dy, incy, res)
 
subroutine gpu::gpu_dgeam (handle, transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc)
 
subroutine gpu::gpu_dgeam_64 (handle, transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc)
 
subroutine gpu::gpu_sgeam (handle, transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc)
 
subroutine gpu::gpu_sgeam_64 (handle, transa, transb, m, n, alpha, a, lda, beta, b, ldb, c, ldc)
 
subroutine gpu::gpu_dgemv (handle, transa, m, n, alpha, a, lda, x, incx, beta, y, incy)
 
subroutine gpu::gpu_dgemv_64 (handle, transa, m, n, alpha, a, lda, x, incx, beta, y, incy)
 
subroutine gpu::gpu_sgemv (handle, transa, m, n, alpha, a, lda, x, incx, beta, y, incy)
 
subroutine gpu::gpu_sgemv_64 (handle, transa, m, n, alpha, a, lda, x, incx, beta, y, incy)
 
subroutine gpu::gpu_dgemm (handle, transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine gpu::gpu_dgemm_64 (handle, transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine gpu::gpu_sgemm (handle, transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine gpu::gpu_sgemm_64 (handle, transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)