mirror of
https://github.com/CNugteren/CLBlast.git
synced 2024-08-22 04:52:34 +02:00
246 lines
10 KiB
Plaintext
246 lines
10 KiB
Plaintext
|
# ########################################################################
|
|||
|
# Copyright 2013 Advanced Micro Devices, Inc.
|
|||
|
#
|
|||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|||
|
# you may not use this file except in compliance with the License.
|
|||
|
# You may obtain a copy of the License at
|
|||
|
#
|
|||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
#
|
|||
|
# Unless required by applicable law or agreed to in writing, software
|
|||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
|
# See the License for the specific language governing permissions and
|
|||
|
# limitations under the License.
|
|||
|
# ########################################################################
|
|||
|
|
|||
|
clBLAS Readme
|
|||
|
|
|||
|
Version: 1.10
|
|||
|
Release Date: April 2013
|
|||
|
|
|||
|
ChangeLog:
|
|||
|
____________
|
|||
|
Current Version:
|
|||
|
New:
|
|||
|
* New Level 1 routines added (an 'x' implies all 4 precisions)
|
|||
|
xSWAP, xCOPY, xSCAL, CSSCAL, ZDSCAL, xAXPY, SDOT, DDOT,
|
|||
|
CDOTU, ZDOTU, CDOTC, ZDOTC, xROTG, SROTMG, DROTMG,
|
|||
|
SROT, DROT, CSROT, ZDROT, SROTM, DROTM, SNRM2, DNRM2,
|
|||
|
SCNRM2, DZNRM2, ixAMAX, SASUM, DASUM, SCASUM, DZASUM
|
|||
|
* Samples have been added for the new functions
|
|||
|
* This release tested using the 9.012 runtime driver and the 2.8 APPSDK
|
|||
|
Fixed:
|
|||
|
* Failures in *trsm functions with clMAGMA tests
|
|||
|
Known Issues:
|
|||
|
* Failures & hangs in ztrmm, *trsv, *tpsv functions on Southern Island GPU devices
|
|||
|
* Failures in zgemm functions on Northern Island GPU devices
|
|||
|
* Failures & hangs are expected to be fixed in the upcoming AMD graphics driver versions.
|
|||
|
It is strongly recommended that users keep their graphics driver versions up to date.
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.8.291:
|
|||
|
Fixed:
|
|||
|
* Failures in the following functions: ssyr2, ssyr2k, strsm, strsv, ssyrk, cher,
|
|||
|
ctrsv, csymm, cher2, ztrmm on Southern Island GPU devices.
|
|||
|
* Failures in the following functions: dsyr, dsyr2, dgemv, dsyrk,
|
|||
|
dsyr2k, zsyr2k on Trinity platforms.
|
|||
|
Known Issues:
|
|||
|
* Failures in *trsm functions with clMAGMA tests
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.8.269 (Beta, clMAGMA support):
|
|||
|
New:
|
|||
|
* No new routines
|
|||
|
* This release tested using the 8.961 runtime driver and the 2.6 APPSDK
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* The clBLASTune executable has been observed to hang on Windows. If
|
|||
|
this happens, abort execution of the tune program; it is not required
|
|||
|
for correct operation of the BLAS routines (as of 8.872).
|
|||
|
* clBLAS can return invalid results on CPU devices (as
|
|||
|
of 8.961). The CPU device is primarily a test/debug device, and GPU
|
|||
|
devices are unaffected.
|
|||
|
* clBLAS can return invalid results for double precision functions (dsyr,
|
|||
|
dsyr2, dgemv, dsyrk, dsyr2k, zsyr2k) on Trinity platforms (as of
|
|||
|
8.961).
|
|||
|
* clBLAS can return invalid results (ssyr2, ssyr2k, strsm, strsv, ssyrk, cher,
|
|||
|
ctrsv, csymm, cher2, ztrmm) on Southern Island GPU devices (as of 8.961).
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.7 (Beta, clMAGMA support):
|
|||
|
New:
|
|||
|
* New Level 3 routines added (an 'x' implies all 4 precisions)
|
|||
|
CHER2K, ZHER2K
|
|||
|
* New Level 2 routines added (an 'x' implies all 4 precisions)
|
|||
|
xTPMV, xTPSV, SSPVM, DSPMV, CHPMV, ZHPMV, SSPR, DSPR, CHPR, ZHPR,
|
|||
|
SSPR2, DSPR2, CHPR2, ZHPR2, xGBMV, CHBMV, ZHBMV, SSBMV, DSBMV,
|
|||
|
xTBMV, xTBSV
|
|||
|
* Samples have been added for the new functions, but are not fully tested
|
|||
|
* This release tested using the 8.951 runtime driver and the 2.6 APPSDK
|
|||
|
* Note that documentation is incomplete for the new functions
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* The clBLASTune executable has been observed to hang on Windows. If
|
|||
|
this happens, abort execution of the tune program; it is not required
|
|||
|
for correct operation of the BLAS routines (as of 8.872).
|
|||
|
* clBLAS can return invalid results on CPU devices that support AVX (as
|
|||
|
of 8.951). CPU devices that support up to SSE3 are unaffected. The
|
|||
|
CPU device is primarily a test/debug device, and GPU devices are
|
|||
|
unaffected.
|
|||
|
* clBLAS can return invalid results for double precision functions (dsyr,
|
|||
|
dsyr2, dgemv, dsyrk, dsyr2k, zsyr2k) on Trinity platforms (as of
|
|||
|
8.951).
|
|||
|
* clBLAS can return invalid results (ssyr, ssyr2, strsv, ctrsv, ssyrk,
|
|||
|
ssyr2k, ztrmm) on Southern Island GPU devices (as of 8.951).
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.6:
|
|||
|
New:
|
|||
|
* New Level 3 routines added (an 'x' implies all 4 precisions)
|
|||
|
CSYRK, ZSYRK, CSYR2K, ZSYR2K, CHEMM, ZHEMM, CHERK, ZHERK, xSYMM
|
|||
|
* New Level 2 routines added (an 'x' implies all 4 precisions)
|
|||
|
CGEMV, ZGEMV, xTRMV, xTRSV, CHEMV, ZHEMV, SGER, DGER, CGERU, ZGERU,
|
|||
|
CGERC, ZGERC, CHER, ZHER, CHER2, ZHER2, SSYR, DSYR, SSYR2, DSYR2
|
|||
|
* For all the original functions prior to 1.6, a new API has been introduced
|
|||
|
with an *Ex suffix. These extended API's add new parameters that allow
|
|||
|
users to specify an offset to a matrix argument. This allows efficient
|
|||
|
sub-matrix indexing within a clBLAS routine without requiring expensive
|
|||
|
sub-matrix copy operations.
|
|||
|
* Samples have been added for the new functions
|
|||
|
* Preview: Support for AMD Radeon<6F> HD7000 series GPUs
|
|||
|
* This release tested using the 8.92 runtime driver and the 2.6 APP SDK
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* The clBLASTune executable has been observed to hang on Windows. If this
|
|||
|
happens, abort execution of the tune program; it is not required for
|
|||
|
correct operation of the BLAS routines (as of 8.872).
|
|||
|
* The CPU device for clBLAS is not functioning for this release (as of
|
|||
|
8.872). The CPU device is primarily a test/debug device, and GPU
|
|||
|
devices are unaffected.
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.4:
|
|||
|
New:
|
|||
|
* New Level 3 routines added
|
|||
|
SSYRK, DSYRK, SSYR2K, DSYR2K
|
|||
|
* New Level 2 routines added
|
|||
|
SGEMV, DGEMV, SSYMV, DSYMV
|
|||
|
* The image support functions (clblasAddScratchImage,
|
|||
|
clblasRemoveScratchImage) have been deprecated. Images are no
|
|||
|
longer required for the highest performance.
|
|||
|
* InstallShield is now used for APPML libraries. The default install
|
|||
|
location has changed from c:\amd\clBLAS to
|
|||
|
C:\Program Files (x86)\AMD\clBLAS. It is recommended that previous
|
|||
|
versions of clBLAS are uninstalled first.
|
|||
|
* Samples have been added for the new functions
|
|||
|
* This release tested using the 8.872 runtime driver and the 2.5 APP SDK
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* The clBLASTune executable has been observed to hang on Windows. If this
|
|||
|
happens, abort execution of the tune program; it is not required for
|
|||
|
correct operation of the BLAS routines (as of 8.872).
|
|||
|
* The CPU device for clBLAS is not functioning for this release (as of
|
|||
|
8.872). The CPU device is primarily a test/debug device, and GPU
|
|||
|
devices are unaffected.
|
|||
|
|
|||
|
|
|||
|
____________
|
|||
|
Version 1.2:
|
|||
|
* The library now supports both 32- and 64-bit Windows and Linux operating
|
|||
|
systems.
|
|||
|
* xTRSM routines are available in 1.2.
|
|||
|
* clBLAS routines return clBLASStatus error codes, instead of native
|
|||
|
OpenCL error codes
|
|||
|
|
|||
|
Fixed:
|
|||
|
* xTRMM routines were not properly handling implicit unit diagonal
|
|||
|
elements and implicit off-diagonal zero values specified by the BLAS
|
|||
|
parameters SIDE, UPLO and DIAG.
|
|||
|
* Possible crash with CPU device on 32-bit systems.
|
|||
|
* clblasDgemm routine return an invalid event as its last argument.
|
|||
|
* clBLAS routines return clblasStatus error codes, instead of
|
|||
|
native OpenCL error codes.
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* The clBLASTune executable has been observed to hang on Windows. If this
|
|||
|
happens, abort execution of the tune program; it is not required for
|
|||
|
correct operation of the BLAS routines (as of 8.872).
|
|||
|
* The CPU device for clBLAS is not functioning for this release (as of
|
|||
|
8.872). The CPU device is primarily a test/debug device, and GPU
|
|||
|
devices are unaffected.
|
|||
|
|
|||
|
____________________
|
|||
|
Version 1.0:
|
|||
|
* Initial release
|
|||
|
|
|||
|
Known Issues:
|
|||
|
* Available only on Linux64.
|
|||
|
* xTRMM routines were not properly handling implicit unit diagonal elements
|
|||
|
and implicit off-diagonal zero values specified by the BLAS parameters
|
|||
|
SIDE, UPLO and DIAG
|
|||
|
* clblasDgemm returned an invalid event as its last argument
|
|||
|
|
|||
|
_____________
|
|||
|
Building the Samples:
|
|||
|
|
|||
|
To install the Linux versions of clBLAS, uncompress the initial download, then
|
|||
|
execute the install script.
|
|||
|
|
|||
|
For example:
|
|||
|
|
|||
|
tar -xf clBLAS-${version}-Linux.tar.gz
|
|||
|
- This installs three files into the local directory, one being an
|
|||
|
executable bash script.
|
|||
|
|
|||
|
sudo mkdir /opt/clBLAS-${version}
|
|||
|
- This pre-creates the install directory with proper permissions
|
|||
|
in /opt if it is to be installed there. (This is the default.)
|
|||
|
|
|||
|
./install-clBLAS-${version}.sh
|
|||
|
- This prints an EULA and uncompresses files into the chosen install
|
|||
|
directory.
|
|||
|
|
|||
|
cd ${installDir}/bin64
|
|||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${OpenCLLibDir}:${clBLASLibDir}
|
|||
|
- Be sure to export library dependencies to resolve all external
|
|||
|
linkages to the client program; you can create a bash script to
|
|||
|
help automate this procedure.
|
|||
|
|
|||
|
./example_sgemm
|
|||
|
- Run a simple client; one example is provided for each supported
|
|||
|
main BLAS function family.
|
|||
|
|
|||
|
The sample program does not ship with native build files; instead, a CMake
|
|||
|
file is shipped, and the user generates a native build file for their system.
|
|||
|
|
|||
|
For example:
|
|||
|
|
|||
|
cd ${installDir}
|
|||
|
|
|||
|
mkdir samplesBin/
|
|||
|
- This creates a sister directory to the samples directory that
|
|||
|
houses the native makefiles and the generated files from the
|
|||
|
build.
|
|||
|
|
|||
|
cd samplesBin/
|
|||
|
ccmake ../samples/
|
|||
|
- ccmake is a curses-based cmake program; it takes a parameter
|
|||
|
that specifies the location of the source code to compile.
|
|||
|
- Hit 'c' to configure for the platform; ensure that the
|
|||
|
dependencies to external libraries are satisfied, including
|
|||
|
paths to 'ATI Stream SDK'.
|
|||
|
- After dependencies are satisfied, hit 'c' again to finalize
|
|||
|
configuration. Then, hit 'g' to generate a makefile and
|
|||
|
exit ccmake.
|
|||
|
|
|||
|
make help
|
|||
|
- Look at the options available for make.
|
|||
|
|
|||
|
make
|
|||
|
- Build the sample client program.
|
|||
|
|
|||
|
./example_sgemm
|
|||
|
- Run a simple client; one example is provided for each supported main
|
|||
|
BLAS function family.
|