Sunday 24 July 2011

SETI Astropulse on AMD/ATI GPU (Radeon HD 5000 and 6000 series)

It was reported on Lunatics web site that they were able to develop ATI version of Astropulse 5.05.
However instructions granted only for advanced users and the forum is not working now (site is read-only).
Update from 31 July 2011: As it appeared, there is an automatic installer for BOINC from Lunatics here. It will install optimized clients for Astropulse and Multibeam for CPU and AMD/ATI GPU.
Below are the steps for manual installation.
Therefore, this page provides step-by-step installation instructions.

Prerequisites (for each computing host):
1) You must have BOINC installed.
2) You must be connected to SETI@home
3) You must have AMD/ATI Radeon HD 5000 or 6000 series installed and active (for example, I'm using Radeon HD 6850)

Installation steps:
1) Close the BOINC manager. (Tray icon -> right click -> Exit. You will not probably need to stop all active computing processes, however, it is recommended.)

2) Go to lunatics download page and download file from their mirror.

3) Open the BOINC installation folder (for example and below the path C:\Program Files\BOINC is assumed)

4) Open Data->Projects->setiathome.berkeley.edu (full path will look like:
"C:\Program Files\BOINC\Data\Projects\setiathome.berkeley.edu") - this is a SETI project folder.

5) Extract downloaded archive (ap_5.06_win_x86_SSE2_OpenCL_ATI_r521.rar) to the SETI project folder. Extracted files must be located in the SETI project (without any folders) so that their path is:
  1.  C:\Program Files\BOINC\Data\Projects\setiathome.berkeley.edu\ap_5.06_win_x86_SSE2_OpenCL_ATI_r521.exe
  2.  C:\Program Files\BOINC\Data\Projects\setiathome.berkeley.edu\ap_5.06_win_x86_SSE2_OpenCL_ATI_r521.pdb
  3. C:\Program Files\BOINC\Data\Projects\setiathome.berkeley.edu\AstroPulse_Kernels_r521.cl
6) Download the following file app_info.xml (File->Save As after opening in your browser) and copy it into SETI project folder too:
    "C:\Program Files\BOINC\Data\Projects\setiathome.berkeley.edu\app_info.xml"

7) Go to AMD Support&Drivers download page and download latest Catalyst driver package (AMD Radeon™ Video Card Drivers). For example:
    Windows XP - 32 bit
    Windows Vista and 7 - 32 bit
    Windows Vista and 7 - 64 bit

Anyways we are looking for the newest driver supporting OpenCL (GPU computing platform).

8) Install or update with the downloaded driver. Reboot if requested.

9) Start the BOINC manager manually. (Start menu->Programs->BOINC->BOINC Manager)

10) Go to the Projects tab. Select Seti@home, then click "Your Preferences" button in the bottom left button group ("Web sites"). This will lead you to the Project preferences. (Alternatively open page). Log in and edit SETI@home preferences.

11) Make sure the option "If no work for selected applications is available, accept work from other applications?" is checked. Update preferences

12) Go back to your BOINC Manager window. On the Projects tab, select Seti@home and press Update in the Commands button group on the left.

Sooner or later your host will download tasks for Astropulse 5.05 (my received immediately). One AP workunit is processed in about 60 minutes on Radeon HD 6850.
 Computed workunit will appear as the following on an Account Tasks page:
Computed Astropulse workunit example (Radeon HD 6850)
Explanations:
This showed how to perform anonymous platform installation for BOINC. The downloaded package runs multiple OpenCL kernels on your GPU (source file is the AstroPulse_Kernels_r521.cl). It will be hard to use computer while GPU is computing, so make sure to disable the "Use GPU while computer is in use" option in the BOINC Tools->Computing Preferences. According to the source code, the memory requirement is up to 128 MB of GPU RAM.

Questions:
Any questions comment here or ask at the SETI message board thread (which seems to be active).

Friday 15 July 2011

Fuzzy logic control sample application

The following application simulates control of an object using configurable fuzzy logic controller. Its database of rules and object transfer function is currently hardcoded. However there's an option to configure everything else of the fuzzy logic controller (FLC - refer to wikipedia).
Here's the main window at start up:
After simulation run, the transition process may be seen on a Simulation results page:
The output plot draws modelling results for closed loop run (without control), PID control (with customized parameters) and FLC configuration.
This FLC implements simplest behavior. However, the source code is open for modifications (download links below).
    Some functionality is still missing (chirp signal input, simulated error plot and plot for derivative of error, etc.).

Source code is written in C++ (mingw) + Qt SDK 1.1. Plots are drawn with Qwt project QwtPlot widget. Application is open source MIT or LGPLv3.

  Download link:
       application archive (zip): Public_XCtrlFuzzy - version 1.0 [Win32/i386] - 4.34 MiB
       source code (zip): Source_XCtrlFuzzy - version 1.0 - 7.79 MiB

Wednesday 6 July 2011

Joystick test application (Qt + DirectInput8) [Windows]

  This application is provided to test joystick output using DirectInput8. It reports the axis positions, as well as the buttons' state.

  Download link:
       application archive (zip): Public_QtJoystick - version 0.2b [Win32/i386] - 4.53 MiB
       source code (zip): Source_QtJoystick - version 0.2b - 292 KiB

    It will be later used in my OGL6 tank game and robot simulation (which is based on the game's engine). Any suggestions, questions and comments are welcome. It is distributed under the LGPL or MIT license on your choice.

    It is written with Qt SDK 1.1 & QtCreator 2.1. Source code is available for download and use under the LGPLv2 or MIT license.

  Usage:
1) Download Public_QtJoystick .zip archive
2) Unpack it with windows zip unpacker or any archive tool (like 7-zip) to any directory
3) Plug in the joystick (if it isn't plugged yet)
4) Run QtJoystick.exe
Locations of visitors to this page