Archive for the ‘GPU’ Category

Commercial Users of Functional Programming Videos

Just found a lot of videos from the “Commercial Users of Functional Programming” Edinburgh 2009

Lectures on Haskel, Scala, Erlang, F# etc.

Running Haskell Array Computations on a GPU

OpenCL 1.0 Conformance Candidate Release

I just received a message from NVIDIA that they are releasing a OpenCL 1.0 Conformance
Candidate to GPU Computing registered developers:

The information description is:  We are pleased to announce the release of
our OpenCL 1.0 Conformance
Candidate to GPU Computing registered developers.  You now have access
to the OpenCL drivers we submitted this week to the Khronos OpenCL
working group.

The release also includes several OpenCL SDK code samples and
additional documentation to help you get started programming with
OpenCL.

Please submit bug reports (and feature/extension requests) using the
“Bug Report” link in top left when your are logged in.  You may also
ask questions and discuss this release and other OpenCL-related topics
in the OpenCL developer forums, here:

http://forums.nvidia.com/index.php?showforum=134

It is recommended that you follow the installation instructions in the
Release Notes for your platform. A driver update may be required, as
noted in the release notes.

Please review the release notes carefully after installation, as
this will allow for a much smoother introduction to the release.
While this release can be used on a wide variety of NVIDIA products,
only a subset were tested for this release.

NVIDIA OpenCL Jump Start Guide [PDF]

OpenCL 1.0 Specification

OpenCL at NVIDIA

Tags: , ,

How to set CUDA in Eclipse

Here I describe steps to get Eclipse working with CUDA. I am working on Ubuntu 8.04 and Eclipse: 3.2.2.

  1. Install latest CUDA – www.nvidia.com/cuda
  2. Install Eclipse if not already installed - www.eclipse.org
  3. set all necessary paths in /etc/ld.conf  and execute ldconfig as root (sudo)  during the CUDA installation.
  4. In Eclipse to enable code highlighting:  Window -> Preferences -> in C/C++ -> File Types -> New -> enter “*.cu” and select “C++ Source File”
  5. Make a copy of NVidia’s template project and set this project in eclipse
    • cd NVIDIA_CUDA_SDK/projects/
    • cp -r template/   my project/
    • New -> C++ Project ->
      • uncheck “Use default location” and set project name
      • next, on Make builder tab removed “all” target.
  6. after the project creation right click on project and open properties menu and in “Include paths and symbols” add external include path /usr/local/cuda/bin
  7. To set up Eclipse to run it:
    Run -> Run Configurations -> select “C/C++ Local Application” -> “New launch configuration” (click the leftmost icon on the top)

    • set name
    • set project
    • set path to binary e.g /…./bin/linux/release/name
  8. Edit Makefile to reflect the name of executable and other names.

Tags: , ,

GPU Kernels as Data-Parallel Array Computations in Haskell

This paper provides a brief overview of  approach to GPU programming with Haskell by embedding GPU kernels with a domain-specific language of data-parallel array computations in Haskell code. The paper also presents some preliminary benchmarks.

We present a novel high-level parallel programming model aimed at graphics processing units (GPUs). We embed GPU kernels as data-parallel array computations in the purely functional language Haskell. GPU and CPU computations can be freely interleaved with the type system tracking the two different modes of computation. The embedded language of array computations is sufficiently limited that our system can automatically extract these computations and compile them to efficient GPU code. In this paper, we outline our approach and present the results of a few preliminary benchmarks.



http://www.cse.unsw.edu.au/~chak/papers/LCGK09.html

Tags: , ,

OpenCL 1.0 Specification Completed in Time for Snow Leopard

The Khronos group announced the ratification and public release of the OpenCL 1.0 specification described as the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. Currently only on Snow Leopard operating system.

http://www.khronos.org/news/press/releases/the_khronos_group_releases_opencl_1.0_specification/

http://www.macrumors.com/2008/12/09/opencl-1-0-specification-completed-and-released/

Tags:

GPU Computing for Financial Engineering Workshop – Level 3 Finance

I personally have interests in Finance and Monte Carlo techniques, so this workshop organized by Level 3 Finance is very interesting by my opinion.

Summary: The workshop provides an introduction to GPU programming based on the nVidia CUDA language and reviews applications to Financial Engineering. The morning session covers hardware configurations of nVidia Tesla cards, kernel writing with CUDA, CUBLAS and CUFFT libraries, asynchronous programming patterns and multi-GPU platforms. The afternoon and evening sessions dwell on practical applications to Financial Engineering.

Some highlights by me:

  • Moment methods for path dependent options
  • Kernels and long step Monte Carlo
  • LIBOR Monte Carlo example

GPU Computing for Financial Engineering

Tags: ,