Archive for the ‘CUDA’ 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 Visual Profiler with Updated Drivers and SDK Code Samples
New Tool or Utility has just been posted to NVIDIA site.
This information is titled: OpenCL Visual Profiler with Updated Drivers
and SDK Code Samples
This information is for: General
The information description is: Leveraging the extensive performance
instrumentation in NVIDIA’s OpenCL
drivers and hardware performance signals designed into NVIDIA GPUs, the
OpenCL Visual Profiler provides developers with insight into performance
bottlenecks and opportunities for optimization. Key features include:
* Profiling of actual hardware signals, kernel efficiency,
and instruction issue rate
* Timing of memory copies between system memory and device memory
* Customizable graphs to help developers focus in on problem areas
* Basic auto-analysis to reveal warp serialization problems
* Easy import/export to CSV for custom analysis
This release also includes unified driver packages and an updated SDK
with support for both OpenCL and DirectCompute (be sure to follow the
instructions in the release notes to activate DirectCompute support).
Support for multi-GPU performance scaling has been added to most of the
OpenCL code samples, and several new code samples have been added as
well, including:
* oclMedianFilter
* oclFDTD3d
* oclRadixSort
* oclMersenneTwister
* oclSemirandomGenerator
* ImageProcessingCS
* nBodyCS
* OceanCS
* SimpleParticlesCS
Don”t miss the helpful OpenCL Best Practices Guide, designed to help
developers using OpenCL on the CUDA architecture implement high
performance parallel algorithms and understand best practices for GPU
Computing. Chapters on the following topics and more are included in
the guide:
* Heterogeneous Computing with OpenCL
* Performance Metrics
* Memory Optimizations
* NDRange Optimizations
* Instruction Optimizations
* Control Flow
* Performance Optimization Strategies
The drivers and SDK code samples in this release are compatible with
with the publicly available CUDA Toolkit 2.3 which is available at
www.nvidia.com/cuda.
Tags: CUDA, NVIDIA, Open, OpenCL
Papers on implementing RBM in GPU
Just read some papers on how to implement Restricted Boltzmann Machine on GPU. In RBM most computationally intensive part is weight update stage. Using GPU (CUDA, OpenCL, etc) can speed this stage 5-70 times depending on GPU and algorithm used. Major bottleneck in the implementations is the communication between main memory and the GPU unit:
“Design and Analysis of BLAS, GPU, and Sparse Multithreaded Acceleration Methods for Restricted Boltzmann Machine Training” (2009) 12-43 times speedup achieved - PDF
“Large-scale Deep Unsupervised Learning using Graphics Processors” (2009) 12-70 times speedup achieved - PDF
Interesting part in the second paper is that they use a model with 100 million parameters. No discussion is given on regularization efforts and I am afraid this model can easily become overfitted.
“Neural Networks on GPUs: Restricted Boltzmann Machines” (2008) 66 times speedup achieved – PDF
Tags: CUDA, GPU, Neural networks, OpenCL, RBM
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]
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.
- Install latest CUDA – www.nvidia.com/cuda
- Install Eclipse if not already installed - www.eclipse.org
- set all necessary paths in /etc/ld.conf and execute ldconfig as root (sudo) during the CUDA installation.
- In Eclipse to enable code highlighting: Window -> Preferences -> in C/C++ -> File Types -> New -> enter “*.cu” and select “C++ Source File”
- 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.
- 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
- 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
- Edit Makefile to reflect the name of executable and other names.
