cublas-0.5.0.0: FFI bindings to the CUDA BLAS library

Copyright[2017] Trevor L. McDonell
LicenseBSD3
MaintainerTrevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Stabilityexperimental
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Foreign.CUDA.BLAS.Level3

Description

For more information see the cuBLAS Level-3 function reference:

http://docs.nvidia.com/cuda/cublas/index.html#cublas-level-3-function-reference

Synopsis

Documentation

data Operation Source #

Indicates which operation needs to be performed with a dense matrix.

  • N: no transpose selected
  • T: transpose operation
  • C: conjugate transpose

http://docs.nvidia.com/cuda/cublas/index.html#cublasoperation_t

Constructors

N 
T 
C 

data Fill Source #

Indicates which part, upper or lower, of a dense matrix was filled and consequently should be used by the function.

http://docs.nvidia.com/cuda/cublas/index.html#cublasfillmode_t

Constructors

Lower 
Upper 
Instances
Enum Fill Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

succ :: Fill -> Fill #

pred :: Fill -> Fill #

toEnum :: Int -> Fill #

fromEnum :: Fill -> Int #

enumFrom :: Fill -> [Fill] #

enumFromThen :: Fill -> Fill -> [Fill] #

enumFromTo :: Fill -> Fill -> [Fill] #

enumFromThenTo :: Fill -> Fill -> Fill -> [Fill] #

Eq Fill Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

(==) :: Fill -> Fill -> Bool #

(/=) :: Fill -> Fill -> Bool #

Show Fill Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

showsPrec :: Int -> Fill -> ShowS #

show :: Fill -> String #

showList :: [Fill] -> ShowS #

data Diagonal Source #

Indicates whether the main diagonal of a dense matrix is unity and consequently should not be be touched or modified by the function.

http://docs.nvidia.com/cuda/cublas/index.html#cublasdiagtype_t

Constructors

NonUnit 
Unit 

data Side Source #

Indicates whether the dense matrix is on the lift or right side in the matrix equation solved by a particular function.

http://docs.nvidia.com/cuda/cublas/index.html#cublassidemode_t

Constructors

Left 
Right 
Instances
Enum Side Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

succ :: Side -> Side #

pred :: Side -> Side #

toEnum :: Int -> Side #

fromEnum :: Side -> Int #

enumFrom :: Side -> [Side] #

enumFromThen :: Side -> Side -> [Side] #

enumFromTo :: Side -> Side -> [Side] #

enumFromThenTo :: Side -> Side -> Side -> [Side] #

Eq Side Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

(==) :: Side -> Side -> Bool #

(/=) :: Side -> Side -> Bool #

Show Side Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #

data Type Source #

Used to specify the type of data underlying a void* pointer. For example, it is used in the routine ?gemmEx.

http://docs.nvidia.com/cuda/cublas/index.html#cuda_datatype_t

Constructors

R32f 
R64f 
R16f 
R8i 
C32f 
C64f 
C16f 
C8i 
R8u 
C8u 
R32i 
C32i 
R32u 
C32u 
Instances
Enum Type Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

succ :: Type -> Type #

pred :: Type -> Type #

toEnum :: Int -> Type #

fromEnum :: Type -> Int #

enumFrom :: Type -> [Type] #

enumFromThen :: Type -> Type -> [Type] #

enumFromTo :: Type -> Type -> [Type] #

enumFromThenTo :: Type -> Type -> Type -> [Type] #

Eq Type Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Show Type Source # 
Instance details

Defined in Foreign.CUDA.BLAS.Internal.Types

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

data GemmAlgorithm Source #

Used to run gemmEx with a specific, yet completely unspecified, algorithm.

sgemmEx :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> IO () Source #

cgemmEx :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr (Complex Float) -> DevicePtr () -> Type -> Int -> IO () Source #

gemmEx :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Ptr () -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr () -> DevicePtr () -> Type -> Int -> Type -> GemmAlgorithm -> IO () Source #

csyrkEx :: Handle -> Fill -> Operation -> Int -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> Ptr Float -> DevicePtr (Complex Float) -> Type -> Int -> IO () Source #

csyrk3mEx :: Handle -> Fill -> Operation -> Int -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> Ptr Float -> DevicePtr (Complex Float) -> Type -> Int -> IO () Source #

cherkEx :: Handle -> Fill -> Operation -> Int -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> Ptr Float -> DevicePtr (Complex Float) -> Type -> Int -> IO () Source #

cherk3mEx :: Handle -> Fill -> Operation -> Int -> Int -> Ptr Float -> DevicePtr () -> Type -> Int -> Ptr Float -> DevicePtr (Complex Float) -> Type -> Int -> IO () Source #

nrm2Ex :: Handle -> Int -> DevicePtr () -> Type -> Int -> Ptr () -> Type -> Type -> IO () Source #

axpyEx :: Handle -> Int -> Ptr () -> Type -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Type -> IO () Source #

dotEx :: Handle -> Int -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr () -> Type -> Type -> IO () Source #

dotcEx :: Handle -> Int -> DevicePtr () -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr () -> Type -> Type -> IO () Source #

scalEx :: Handle -> Int -> Ptr () -> Type -> DevicePtr () -> Type -> Int -> Type -> IO () Source #

gemmBatchedEx :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Ptr () -> DevicePtr (DevicePtr ()) -> Type -> Int -> DevicePtr () -> Type -> Int -> Ptr () -> DevicePtr () -> Type -> Int -> Int -> Type -> GemmAlgorithm -> IO () Source #

gemmStridedBatchedEx :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Ptr () -> DevicePtr () -> Type -> Int -> Int64 -> DevicePtr () -> Type -> Int -> Int64 -> Ptr () -> DevicePtr () -> Type -> Int -> Int64 -> Int -> Type -> GemmAlgorithm -> IO () Source #