NEWS | R Documentation |
API Changes:
The solve
method for gpuMatrix
objects now returns a gpuMatrix
to remain consistent with the overall gpuR API #108
The default numeric type has been changed to 'float' to allow all devices to use the functions herein by default as is also generally faster than 'double' which is not always required. #92
New Features:
Added matrix-vector product for gpuMatrix
/gpuVector
objects #98
The deprecation warnings often returned from custom_opencl
are now suppressed to avoid end-user confusion #103
Implemented tcrossprod
methods for gpuVector
/vclVector
objects #112
Improved error message when referring to queues #119
custom_opencl
now allows for kernels to call internally defined functions #129
Added 'inplace' operations for 'exp', 'abs' #141
Bug Fixes:
GEMV output dimensions have been fixed #97
Fixed bug when using custom_opencl
with multiple scalars #118
Fixed bug in custom_opencl
which omitted pragma allowing for double precision in special cases #123
Fixed bug in dist
with respect to gpuMatrix
objects exceeding dimensions of 128 #131
Fixed bug in integer GEMM kernel observed in larger matrices #140
Fixed bug in restricting S4 methods in recent R versions #152
Changes in gpuR Documentation:
API Changes:
deviceType, gpuInfo, cpuInfo not longer accepts 'platform_idx' parameter as OpenCL contexts cannot contain more than one platform.
New Features:
Added functionality to create custom OpenCL functions from user provided kernels
Added 'synchronize' function to assure completion of device calls (necessary for benchmarking)
Added determinant function (det)
Allow for gpuR object - base object interaction (e.g. vclMatrix * matrix)
Added ‘inplace' function for ’inplace' operations. These operations include '+', '-', '*', '/', 'sin', 'asin', 'sinh', 'cos', 'acos', 'cosh', 'tan', 'atan', 'tanh'.
Added 'sqrt', 'sum', 'sign','pmin', and 'pmax' functions
Methods to pass two gpuR matrix objects to 'cov'
Added 'norm' method
Added gpuRmatrix/gpuRvector Arith '+','-' methods
Bug Fixes:
Fixed incorrect device info when using different contexts
Fixed Integer Matrix Multiplication
All OpenCL devices will be initialized on startup (previous version occasionally would omit some devices)
Features in Progress:
Parallel GPU functionality
Implementing 'complex' data type
Additional indexing functionality
Additional correlation methods
Additional gpuR - 'base R' methods
gpu-vcl object methods
New Features:
Automatically detect available SDK on install if available
Simplified installation to build OpenCL ICD when no SDK installed (thanks Yixuan Qui)
Control over individual OpenCL contexts to allow user to choose device to use
Added as.* methods for vclMatrix/Vector and gpuMatrix/Vector objects
Added str method for matrix objects
Added length method for matrix objects
Added solve method for square vclMatrix objects
Added QR-decompsition, SVD, Cholesky for square gpuMatrix/vclMatrix objects
Added diag and diag<- method for matix objects
Added colnames and colnames<- methods
Features in Progress:
'device type' checks (i.e. deal with CPU & GPU objects), perhaps detect type from object?
Parallel GPU functionality
In-place operations
Accept custom OpenCL kernels
New Features:
fixed major bugs with cbind/rbind and deepcopy reflecting new class architectures
Features in Progress:
Additional matrix functions (QR-decompsition, SVD, Cholesky, solve)
'device type' checks (i.e. deal with CPU & GPU objects), perhaps detect type from object?
Control over OpenCL contexts for mutliple GPUs
New Features:
Internal class structure simplified
Scalar Arith methods (e.g. 2*X) for gpuMatrix/vclMatrix objects
Unary '-' operator (i.e. -X) for gpuMatrix/vclMatrix objects
Slice methods to point to gpuVector/vclVector subsets
Block methods to point to gpuMatrix/vclMatrix subsets
deepcopy method to explicitly copy object contents
'log','log10', & 'exp' methods for vector objects
'abs' method added for all objects
'max' & 'min' method for all objects
'cbind' & 'rbind' methods for gpuMatrix/vclMatrix objects
'distance' method for pairwise distances
'squared euclidean' distance added ('sqEuclidean')
't' method added
Features in Progress:
Additional matrix functions (QR-decompsition, SVD, Cholesky, solve)
'device type' checks (i.e. deal with CPU & GPU objects), perhaps detect type from object?
Implemented Features:
gpu* classes for vector and matrix objects
vcl* classes for matrix objects
Support for 'integer', 'float' and 'double' data types
gpuVector * vclVector functions (addition, subtraction)
gpuMatrix & vclMatrix functions (multiplication, addition, subtraction)
gpuMatrix eigen decomposition (values and vectors)
trig functions for gpu* & vcl* classes
print method for gpuMatrix & vclMatrix objects
dist method gpuMatrix & vclMatrix objects
Features in Progress:
Additional matrix functions (QR-decompsition, SVD)