Release Notes for the Base Package

This document describes the most important changes to the base package since release 2.24. In addition, it lists the known open issues and limitations in release 2.50 of the base package.

For more information regarding the status and workarounds related to any of these issues, please contact ClearSpeed support quoting the relevant CTS number.

You should check the ClearSpeed customer support website ( http://support.clearspeed.com ) for updates to these release notes.

What's new in Release 2.50

The following is an overview of the major changes in this release:

This release includes support for Windows Server 2003. For Windows Server 2003 systems you can install the software provided for Windows XP. This should be considered a beta quality preview as it has had limited testing.

CTS 2860: This release includes a new implementation of the DGEMM function in the BLAS library which achieves higher performance than the previous one.

The library name has changed:

from libblas_cs.so to libcsxl.so (Linux)
from blas_cs.dll to csxl.dll (Windows)

All references to the old library name ( libblas_cs.so or blas_cs.dll ) must be replaced with the new library name.

CTS 2974: For consistency with the latest implementation of the BLAS library in CSXL, the name of the FFT library has changed:

from libcsdft.so to libcsxl_csdft.so (Linux)

from csdft.dll to csxl_csdft.dll (Windows)

Note that in the 2.24 release, these libraries were incorrectly named libcsxl_fft.so and csxl_fft.dll .

In the short term, both library names will be available. The older file names ( libcsdft.so and csdft.dll ) are deprecated and will be removed in a future release.

Issues fixed in Release 2.50

The following issues have been fixed in this release:

CTS 1430: The board side plan ( CSDFT_create_plan_<1|2|3>d and CSDFT_create_convolution_plan_<1|2>d ) and execute ( CSDFT_execute and CSDFT_execute_convolution ) functions for CSDFT do little checking on correctness of input. It is possible to get bus errors if unsupported values are used.

CTS 1807: The CSDFT Library is no longer considered to be at beta quality.

CTS 2859: The test application app_mandelbrot , included in the release package, will fail to run on isim unless the -b ( --boards) option is specified in addition to the --host option.

CTS 2204: There is an upper size limit to the matrix arguments for the DGEMM function. If a matrix exceeds this size, the host DGEMM will be called rather than the accelerated DGEMM. The limit depends on the values of n and k . The limit is reached if:

(3*(ceil(k/192)+1)+192*ceil(k/192)*ceil(n/192))*8*192

is greater than 0x1F800000 bytes (504 MB).

CTS 2997: If you are using Microsoft Windows and you install the SDK and then uninstall it, some files will be deleted which are required by the runtime software. The result of this is that it will no longer be possible to run any software on the board.

CTS 3003: The parameters for building Goto BLAS for use with CSXL are now documented in the CSXL User Guide .

CTS 3038: If you are using the previous implementation of DGEMM (that is, when CS_GEN1_BLAS is set to a nonzero value)on Microsoft Windows then the environment variable CS_BLAS_HOST_ASSIST_PERCENTAGE will have no effect. A warning message that the feature is not supported will be displayed.

CTS 3062: The correct use of LD_PRELOAD has been added to the CSXL documentation.

CTS 3073: If you are using the previous implementation of DGEMM then the inv() function in MATLAB will fail with the following error:

Warning: Matrix is singular to working precision.

This is no longer a problem with the new implementation of DGEMM.

CTS 3093: The host library functions for reading and writing memory on the Advance board, CSAPI_read_mono_memory and CSAPI_write_mono_memory , are not thread safe. You should ensure that only a single thread attempts to call these functions.

CTS 3139: The CSXL User Guide documents the DGETRF function. This is not available in this release of the CSXL library.

CTS 3154: The ClearSpeed "nway" BLAS library in previous releases is no longer supported.

CTS 3155: A number of environment variables are ignored by CSXL. Any configuration file specified will be ignored so any variables specified in a configuration file will also have no effect.

CTS 3159: The example setup file for MATLAB installed in the examples directory ( example/csxl/matlab/ ) specifies the wrong library name for the BLAS_VERSION environment variable.

CTS 3208: The variable CS_HOST_BLAS can be used to specify a list of library files to search for BLAS functions. The CSXL User Guide says that this is a colon, ` : ', separated list of paths for both Linux and Windows. This is incorrect. For Microsoft Windows, this is a semicolon separated, ` ; ', list of paths.

CTS 3257: The CSAPI_allocated_shared_memory and CSAPI_allocate_static_shared_memory functions do not assign the address of the allocated memory to the symbol_name parameter if the .csx file has been linked dynamically.

CTS 3265: A call to CSDFT_execute_user_function returns CSDFT_RUNNING . This is confusing as it is not running on return. The function should return CSDFT_NO_ERROR .

 

Known Issues

The following issues are currently open.

Runtime

CTS 239: csrun or host client applications cannot check whether the CSX processor has been reset. Running code on a processor that has not been reset should not be attempted. It is the responsibility of the user to reset the processor before running code (using csreset -s ).

CTS 1820: The functions:

CSAPI_read_mono_memory_async_wait

CSAPI_read_mono_memory_async_poll

and their CSAPI_write counterparts will not return an error code if the asynchronous transfer failed.

CTS 1982: The kernel driver for 2.4 kernels (RHEL 3) may cause the kernel's memory space to become fragmented, resulting in out of memory failures after a very long period of continuous use. This can only be recovered by rebooting the system.

CTS 2004: This release includes a script for resetting the Advance Accelerator board when csreset fails to do so. This does a 'hard' reset of the processors. This functionality will be incorporated into csreset in a future release. Before using the reset script, please gather any diagnostic or debugging information as all state will be lost by the hard reset. For example, the output from csreset -v .

Before running the script, first setup your environment if you have not already done so. Under Linux, source the bashrc file (usually present in /opt/clearspeed/csx600_m512_le/bin ). For Windows, start a command prompt using the shortcut from the ClearSpeed Start menu item. If you have more than one board, set the environment variable LLDINST to the instance number of the board to be recovered. For example, to reset only the first board under Linux enter export LLDINST=0

To run the script, type the command recover_board . You should then see some output like this:

Board recovery utility

 

This should only be used:

- when csreset fails to reset your board

- after any useful diagnostic information has been gathered (e.g. the output from csreset -v).

 

If you wish to continue, press the return key. Otherwise, press control-c to exit.

 

If you are happy to run, then press the return key. You will then see output as follows:

 

Starting...
25%
50%
75%
DONE.

Board recovery attempted - you can now re-run csreset.

To be safe, the recover_board script and csreset should be run whenever the board is powered up.

CTS 3102: After the installing the 2.24 or 2.50 release of the runtime software, you may get the error message "FPGA upgrade required" even if you have a compatible version of firmware on your board. If the firmware cannot be upgraded immediately, Linux users should first ensure that the install-csx script has been run to correctly install the kernel driver. You can also try running the csboard_config utility. If this utility fails to run successfully then you must upgrade the firmware on the board. See the firmware upgrade release notes on the customer support site ( http://support.clearspeed.com ) for details.

CTS 3161: The 2.24 and 2.50 releases of the runtime software will not work with all versions of the firmware on the Advance boards.

See the firmware upgrade release notes on the customer support site ( http://support.clearspeed.com ) for details.

The firmware release notes recommend checking and, if necessary, upgrading the firmware before installing the new software release. If you have already installed the software and now find you are getting the message: "FPGA upgrade required" then you will not be able to use the csreset command to obtain the board serial number and firmware version.

You need the board serial number to determine the board type and revision in order to know which firmware file to use.

If you have access to the board, then you can find the serial number on a label on the underside of the board.

Alternatively, you can uninstall the runtime and reinstall an earlier version (2.23 or earlier). Then you can use csreset to find the board serial number.

CSXL

CTS 1108: If a host application program using the CSXL library is terminated abnormally (for example, by using [Ctrl]+[C]), the Advance Accelerator board may be left in an undefined state. It may be necessary to reset the board (using the csreset command) before restarting the application.

CTS 3003: CSXL does not work with the currently released Goto BLAS host library. Please contact ClearSpeed support (via the support web site http://support.clearspeed.com ) for more information on updates and workarounds for this issue.

CTS 3047: If you use MKL as your host library you must link your application with both MKL and CSXL, putting CSXL first. If this is not done, linking may fail with errors due to symbols not being found.

CTS 3690: The description of the DGESV funcxtion on page 27 of the CSXL User Guide described the Fortran interface as:

SUBROUTINE DGETRF( N, NRHS, A, LDA, IPIV, B, LDB, INFO )

This should be:

SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )

The rest of the description of this function is correct.

CSDFT

CTS 2483: Using printfp in conjunction with the CSDFT library will fail at link time with the error message:

Definition for the symbol 'PRINT_AREA_CONTROL' already found in module default.cso

CTS 2666: When the environment variable CS_CSAPI_DEBUGGER is set, the CSDFT host library assumes that the . csx file to be loaded has _debug appended to the file name. If this file does not exist on the CSPATH , the library will fail to find the . csx file.

CTS 2679: The CSDFT library does not support 1D natural order to natural order transforms on the board. If this is specified in a plan and the source and destination parameters are both on the board then a call to the CSDFT_execute_dft function will return a CSDftStatus value of CSDFT_INVALID_PARAMETER .

CTS 3308: The function CSDFT_get_csapi_handle_board appears in csapi_support.h but is not documented in the CSDFT Reference Manual nor does work correctly. Use of this function is not supported for GA 2.50.

 


© Copyright ClearSpeed Technology plc 2007