Showing posts with label GPU. Show all posts
Showing posts with label GPU. Show all posts

Tuesday, April 14, 2015

GPU Accelerated Randomized Singular Value Decomposition and Its Application in Image Compression

Unless I am mistaken, this is the first time I see RandNLA operation performed using a GPU. It is not the last.



GPU Accelerated Randomized Singular Value Decomposition and Its Application in Image Compression by Hao Ji and Yaohang Li

In this paper, we present a GPU-accelerated implementation of randomized Singular Value Decomposition (SVD) algorithm on a large matrix to rapidly approximate the top-k dominating singular values and correspondent singular vectors. The fundamental idea of randomized SVD is to condense a large matrix into a small dense matrix by random sampling while keeping the important information. Then performing traditional deterministic SVD on this small dense matrix reveals the top-k dominating singular values/singular vectors approximation. The randomized SVD algorithm is suitable for the GPU architecture; however, our study finds that the key bottleneck lies on the SVD computation of the small matrix. Our solution is to modify the randomized SVD algorithm by applying SVD to a derived small square matrix instead as well as a hybrid GPU-CPU scheme. Our GPU-accelerated randomized SVD implementation is around 6~7 times faster than the corresponding CPU version. Our experimental results demonstrate that the GPU-accelerated randomized SVD implementation can be effectively used in image compression.


From the paper:


The elapsed time spent on each primary computational component in randomized SVD is shown in Figure 2 for a 4,096 x 4,096 random matrix where k is 128 and p is 3. Multiplication between A and a “tall-and-skinny” or “short-and-wide” matrix can be efficiently carried out on the GPU’s SIMT architecture and hence the computational time in generating matrix \omega and performing matrix-matrix multiplications shrinks to nearly negligible. Nevertheless, deterministic SVD, particularly when the target matrix is small, has difficulty in fully taking advantage of GPU architecture, due to a series of sequential Householder transformations need to be applied. As a result, deterministic SVD becomes the main bottleneck and thus this GPU implementation has only 1.65 over that of the CPU.
I wonder what happens when the data becomes larger than 4096 x 4096., i.e; if these ratios still hold.
 
Join the CompressiveSensing subreddit or the Google+ Community and post there !
Liked this entry ? subscribe to Nuit Blanche's feed, there's more where that came from. You can also subscribe to Nuit Blanche by Email, explore the Big Picture in Compressive Sensing or the Matrix Factorization Jungle and join the conversations on compressive sensing, advanced matrix factorization and calibration issues on Linkedin.

Tuesday, April 16, 2013

GAGA: GPU Accelerated Greedy Algorithms - implementation -


Jared Tanner just sent me the following:

Dear Igor, 
Hope this reaches you well. Jeff Blanchard and I have been developing GPU code for greedy compressed sensing algorithms, and it has now reached a sufficient stage of polish to be release online.
It would be great if you could mention it on Nuit Blanche. There are two accompanying papers, one on the software: 
and another on using the code to generate large amounts of date comparing the performance of algorithms, and develop "algorithm selection maps" where one can indicate which algorithm is quickest for a given type of matrix and sparse vector: 
This second paper was just recently posted. It is amazing how much data one can get with code this quick….
All the best,
Jared
-------
Jared Tanner
Professor of the Mathematics of Information
Mathematics Institute
University of Oxford
http://people.maths.ox.ac.uk/tanner
Thanks Jared ! From the GAGA page:

GPU Accelerate Greedy Algorithms for Compressed Sensing

Welcome to GAGA, a software package for solving large compressed sensing problems with millions of unknowns in fractions of a second by exploiting the power of graphics processing units.  The current release consists of five greedy algorithms using five matrix ensembles.  This release is set to compile as Matlab executables to enhance your compressed sensing research and applications.  A user guide is available for download detailing the capabilities inluding simple implementations for large-scale testing at problem sizes previously too computationally expensive for extensive testing.
The current version, GAGA 1.0.0, contains five algorithms and is equipped with three clases of matrix multiplication, generic dense matrices, sparse matrices, and the subsampled discrete cosine transform. For large-scale testing, there are a total of five randomly generated matrix ensembles and three randomly generated sparse vector ensembles. For applications, the algorithms are equipped to employ any dense matrix and any sparse matrix in COO format (the default in Matlab). GAGA provides massive acceleration with up to 70x speed-ups in the algorithms' subroutines over a CPU based matlab implementation. For large scale testing, the GPU based random problem generation can offer up to 1600x acceleration.

GAGA can be downloaded from here.

The attendant papers are:


For appropriate matrix ensembles, greedy algorithms have proven to be an efficient means of solving the combinatorial optimization problem associated with compressed sensing. This paper describes an implementation for graphics processing units (GPU) of hard thresholding, iterative hard thresholding, normalized iterative hard thresholding, hard thresholding pursuit, and a two-stage thresholding algorithm based on compressive sampling matching pursuit and subspace pursuit. The GPU acceleration of the former bottleneck, namely the matrix-vector multiplications, transfers a significant portion of the computational burden to the identification of the support set. The software solves high-dimensional problems in fractions of second which permits large-scale testing at dimensions currently unavailable in the literature. The GPU implementations exhibit up to 70x acceleration over standard Matlab central processing unit implementations using automatic multi-threading.


Compressed sensing has motivated the development of numerous sparse approximation algorithms designed to return a solution to an underdetermined system of linear equations where the solution has the fewest number of nonzeros possible, referred to as the sparsest solution. In the compressed sensing setting, greedy sparse approximation algorithms have been observed to be both able to recovery the sparsest solution for similar problem sizes as other algorithms and to be computationally efficient; however, little theory is known for their average case behavior. We conduct a large scale empirical investigation into the behavior of three of the state of the art greedy algorithms: NIHT, HTP, and CSMPSP. The investigation considers a variety of random classes of linear systems. The regions of the problem size in which each algorithm is able to reliably
recovery the sparsest solution is accurately determined, and throughout this region additional performance characteristics are presented. Contrasting the recovery regions and average computational time for each algorithm we present algorithm selection maps which indicate, for each problem size, which algorithm is able to reliably recovery the sparsest vector in the least amount of time. Though no one algorithm is observed to be uniformly superior, NIHT is observed to have an advantageous balance of large recovery region, absolute recovery time, and robustness of these properties to additive noise and for a variety of problem classes. The algorithm selection maps presented here are the first of their kind for compressed sensing

Tuesday, October 19, 2010

CS: Parallel Camp, SCM, NASA Reduced Gravity Opportunity, Around the Blogs in 80 hours, Apprentissage et Parcimonie

I am probably going to go to the Parallel Camp in two days from now but I am not sure what I want to talk about nor what I want to get out of meeting people that are into GPUs. However, If I make a presentation, I will feature it here.. The day before there will be a meeting at SCM entitled "Les limites de la modélisation" (in french), I look forward to the talk on MOX.

I made pitch for the HASP flight recently (Imaging Earth from 120,000 feet: Four Years Later.), but if instead of having hardware flying at 100,000 you prefer go a joy ride in Microgravity, you may want to think of a experiment that could fly on NASA's Reduced Gravity Aircraft (yes the vomit comet), as I said before, make sure you know why you are doing that if you are qualified:

NASA seeks undergraduates to defy gravity for Science and Engineering: Proposals Due October 27

The Reduced Gravity Student Flight Opportunities Program provides a unique academic experience for undergraduate students to successfully propose, design, fabricate, fly and evaluate a reduced gravity experiment of their choice.  Application deadline, flight dates, and other important dates for the 2011 Campaign have been announced.  Please share this information with faculty and students.

Letters of Interest (Optional) Due:         September 22, 2010
Proposals Due:                                          October 27, 2010
Announcement of Selected Teams:      December 8, 2010
Flight Week:                                                 June 2-11, 2011
Information about the program and the application process can be found on the microgravity website (http://microgravityuniversity.jsc.nasa.gov/).


The blog entries you may have missed:
  • First, I agree with Andrew, this essay by Mandelbrot is fascinating
    A maverick’s apprenticeship. The Wolf Prize for Physics. Edited by David Thouless. Singapore: World Scientific, 2004. [ PDF (154.4 KB) ]

Finally, Remi Gribonval pointed out to the upcoming meeting next week (in French)

Apprentissage et Parcimonie

Date : 2010-11-10
Lieu : Telecom Paristech - B312
Thèmes scientifiques :
A - Méthodes et modèles en traitement de signal

Annonce

Les représentations parcimonieuses des signaux et des images reposent sur l'utilisation de dictionnaires redondants de formes d'ondes typiques de certaines classes de signaux ou d'images. Leur utilisation a connu un essor considérable ces dernières années notamment dans les domaines de la restauration, de la compression, de la séparation de sources et des problèmes inverses. Il existe de forts liens, notamment algorithmiques, entre ces modèles parcimonieux et la théorie statistique de l'apprentissage et de la sélection de modèle, et ses applications en apprentissage automatique.
L'objectif global de la journée est de favoriser la rencontre entre les communautés françaises du traitement du signal / de l'apprentissage statistique qui participent de concert au développement rapide du concept de parcimonie et à ses applications, depuis les fondement statistiques et théoriques jusqu'aux dernières avancées algorithmiques.
La journée sera organisée autour d'exposés invités qui permettront de dessiner l'état de l'art du domaine et des défis à venir.

Programme

Organisateurs: Rémi Gribonval et Francis Bach.
  • 09h30-10h10 - Stéphane Mallat, Classification with Sparse or Invariant Representations ?
  • 10h10-10h50 - Odalric Maillard, Least-Squares regression with random spaces
  • 10h50-11h10 Pause café
  • 11h10-11h50 - Matthieu Kowalski, Parcimonie et structures pour les décompositions des signaux dans des dictionnaires temps-fréquence
  • 11h50-12h30 - Guillaume Obozinski, Parcimonie structurée et apprentissage de dictionnaire
  • 14h00-14h40 - Jean-Christophe Pesquet, Algorithmes parallèles proximaux et applications
  • 14h40-15h20 - Erwan Lepennec, Estimation de densité par méthode de Dantzig à pénalisation minimale
  • 15h20-15h40 Pause café
  • 15h40-16h20 - Onur Dikmen, Maximum marginal likelihood estimation for nonnegative dictionary learning
  • 16h20-17h00 - Alexandre Tsybakov, Estimation de matrices de faible rang en grande dimension

Wednesday, February 25, 2009

CS: Open coffee talk questions, SpaRSA on the GPU, Dequantizing Compressed Sensing (ct'd)

. Round Trip Flight to Durham, NC: $ 996.57
. Two nights at the Washington Duke Inn and Golf Club: $274.23
. Attending the Compressive Sensing Workshop: $250
. Enjoying like minded folks while reading Nuit Blanche at the coffee breaks: Priceless.

While a lot of you are in the same room, here are a set of questions that might deserve some attention. Some of you may want to talk amongst yourselves on these issues.

In a recent NA-Digest, Jack Dongarra mentioned the following:

From: Jack Dongarra
Date: Mon, 9 Feb 2009 14:05:55 -0500
Subject: Linear algebra software survey request

We are planning to update the survey of freely available software for the solution of linear algebra problems. The September 2006 version of the survey can be found at: http://www.netlib.org/utk/people/JackDongarra/la-sw.html.

The aim is to put in “one place” the source code that is freely available for
solving problems in numerical linear algebra, specifically dense, sparse direct and iterative systems and sparse iterative eigenvalue problems. Please send me updates and corrections. I will post a note on the na-digest when the new list is available.
Thanks,
Jack

It turns out that in CS, linear algebra problems are being solved but it seems to me that we have not collectively connected to the older and successful LAPACK community. Maybe we should or ...maybe not. Jack responded to my request of the inclusion of a list of the current CS solvers by a "a bit too far afield" response. I agree but as in all disruptive technologies, it is just a question of time before we overtake the entire field of linear algebra :) . On the other hand should we also have a similar table such as this one on top of the mere listing given in the big picture ? and if so, what should the columns be ? (your thoughts are welcomed in the comment section that I will synthesize later).

In a different area, I was asked recently about a set of benchmark against which a solver could be confronted to. I mentioned the set of problems listed in the SPARCO suite. Should we have more of these problems in this set ? Could we get some of the hardware folks to provide different series of measurements to this set of benchmark?

With regards to the stats of this blog, every entry is seen through Google reader by 174 people and through Feedburner by about 94 people. The hit count directly to the blog amount to about 300 per day while about 66 people receive every entry directly in their mailboxes. The Compressive Sensing Study Group on Linkedin now has 105 members.

Following up on the entry on sunday, I talked to Arkadi Nemirovski, who updated his site where there are now two versions of the algorithm implemented in On verifiable sufficient conditions for sparse signal recovery via L1 minimization by Anatoli Juditsky and Arkadi Nemirovski. They are available at this site:


It complements well the other paper entitled Testing the Nullspace Property using Semidefinite Programming by Alexandre d'Aspremont and Laurent El Ghaoui where the NSProp implementation is now available at:


As I said earlier, these two implementations may be game changers in that they might replace the traditional reliance on the restricted isometry property (RIP). Both programs check a condition on a constant \alpha_k. The study of the value of \alpha_k with small matrices could allow one to investigate low order models as well as specific dictionaries.... These two programs are prominently listed in the measurement matrix section of the Big Picture.

A month ago, I mentioned the release of an implementation of the SpaRSA algorithm. It looks like it can even go faster now thanks to Sangkyun Lee and Stephen Wright who implemented it on the GPU and released the implementation on this site. From that page:

Implementing Algorithms for Signal and Image Reconstruction on Graphical Processing Units, submitted, 2008.


This site contains GPU codes for compressed sensing and image denoising/deblurring:
  • In compressed sensing, we implemented a simple version of the SpaRSA algorithm described by Wright, Nowak, and Figueiredo [1], using randomly chosen rows of discrete cosine transform (DCT) matrix as the sensing matrix.
  • In image denoising/deblurring, we implemented the PDHG algorithm of Zhu and Chen [2], which solves the Rudin-Osher-Fatemi formulation with total variation regularization.
All GPU codes compile into Matlab mex binaries, so users can process data and pass them to our GPU routines in Matlab. Our GPU codes require CUDA-enabled GPUs from NVIDIA.

I have added this page to the Compressive Sensing Hardware page. Let us also note the SpaRSA matlab implementation is now at version 2.0.

Yesterday, I featured Dequantizing Compressed Sensing with Non-Gaussian Constraints by Laurent Jacques, David Hammond, and M. Jalal Fadili and followed up with one of those usual dumb questions to Laurent:

How does your solver compared to the one studied by Petros Boufounos and Richard Baraniuk in the 1-Bit Compressive Sensing paper ?

The short answer was:

We haven't tested yet BPDQ on this particular extreme coding.

Laurent also provided a somewhat longer answer:

But let me explain what is similar and different with Petros and Rich's method:

Let x be a signal (sparse or compressible) and let Phi be a Gaussian random sensing matrix.

In the 1-bit compressed sensing model of the paper of Petros Boufounos and Richard Baraniuk, only the sign of (Phi x) is known at the decoder. They propose then to reconstruct the signal by altering the common Basis Pursuit program in two aspects. First, they replace the fidelity term by a Quantization Consistency (QC) term, i.e. the fact that the sign of the remeasured signal candidate must provide the same measurement vector. Second, since the amplitude of the signal is lost in the sign operation, they propose to realize the BP minimization on the sphere of unit norm signals to avoid a vanishing solution. This leads however to a non-convex spherical constraint. They finally solve practically the program by first regularizing the problem on a smoothed version of the QC constraint, and second by running a projected gradient minimization to force to problem to stay on the sphere.
This method was the first attempt to really introduce the QC constraint into the Compressed Sensing formalism, while other methods relied on handling the quantization distortion on the measurements as a common noise in the Basis Pursuit DeNoise (BPDN) program. In the end, the experimental results provided by this 1-Bit CS decoder were interesting compared to the common BPDN treatment with a gain of several dBs.

Our research improves this first approach on a couple of points. First, we wanted to bring a solution for any number of bits (from 1 to many), i.e. any quantization bin width for a uniform quantization model. Second, our decoder had to be closer to the Quantization Consistency, i.e. the fact that requantizing the measurement of the reconstructed signal has to reproduce the known quantized measurement vector. Third, we desired convex constraints so that we could solve it by the versatile techniques of proximal methods and monotone operator splitting (the Douglas Rachford splitting for our case). And finally, our decoder had to be controlled by the theory, i.e. we wanted to bound the approximation error committed by the quantization noise and by possible deviation from the exactly sparse signal model, i.e. the signal compressibility, as it was already existing for the BPDN decoder.

This is why we introduced these Basis Pursuit DeQuantizer (BPDQ) of moment p for p\ge 2. In their foundations, they are adapted to signal reconstruction from measurement vector corrupted by any noise of bounded \ell_p norm since this norm replace the \ell_2 norm used in the BPDN fidelity term. Let me insist on the fact that we are not touching to the sparsity term that is still expressed in the \ell_1 norm as before. The programs BPDQ_p are really introduced to answer to one question: what is a good fidelity term adapted to a non-gaussian noise, as it is the case of the uniform quantization noise. I want to avoid any confusion with other (important but unconnected) research where the \ell_1 sparsity term is replaced by the \ell_q non-convex norm (with q \le 1).

Interestingly, if the sensing matrix satisfies a generalized Restricted Isometry Property of moment p, i.e. a RIP variant bounding the \ell_p norm (p \ge 2) of the random projection of sparse signals (a property that is also satisfied by Gaussian random matrices with high probability), the BPDQ decoders have the desired stability behaviour, i.e. the "instance optimality".

In addition, for noise due to uniform quantization of measurements, we observe an interesting effect. When we work in oversampled situation where the number m of measurements is much higher than required to have the RIP_p, the part of the BPDQ approximation error due to the quantization noise is divided by \sqrt{p+1}. Therfore, when allowed, increasing the moment p thus decreases the approximation error! This is for us really the indication that the quantization noise is handled more faithfully.

To come back to the initial comparison with the 1-bit compressed sensing of Petros Boufounos and Richard Baraniuk, their proposed method is very close to our BPDQ when p=infinity. Indeed, 1-bit quantization consists also in taking the bin width equal the sup-norm of Phi x. The fidelity term for p=infinity induces then the previous sign constraint. Notice that we do not have to work on the unit signal sphere since we add the knowledge of alpha in the coding/decoding scenario. I'm quite sure therefore that in the extreme 1-bit regime our BPDQ for p=infinity will produce results comparable to those of the initial 1-bit CS decoder. However, in oversampled situations, i.e. when m is high, the moment p can be chosen large (making the \ell_p constraint very close to the \ell_infinity one), and our decoders provides theoretically and experimentally decreasing approximation error by working closer to the Quantization Consistency.

Thank you Laurent!

Credit photo: me. That day was cold!

Wednesday, December 03, 2008

CS: GPUCamp, 2 comments, large scale version of the SaMP package, CS with Sequential Observations, Instance Optimal Decoding by Thresholding in CS




Stefano Marchesini has just put up a presentation shown at the UTK Colloquium. This is a 39 MB movie of the slides. If y'all are not reading the comments, Stefano kindly mentioned the following aftter being featured here:

For fairness, the CS part was inspired by Matthew Moravec et al. "Compressive Phase Retrieval", Wavelets XII, SPIE 6701, No. 1. (2007)
It's funny, I did not see it listed on the Rice Repository. The closest I can find is this one.

Thong Do just released a large scale version of the Sparsity Adaptive Matching Pursuit package. More information can be found here. The link is also in the big picture reconstruction section.

Ramesh Raskar has updated his Camera Culture site. One can read more about his fascinating hardware development projects here. He is also recruiting.

Also found two new additions on the Rice Repository:


Compressed sensing allows perfect recovery of a signal that is known to be sparse in some basis using only a small number of measurements. The results in the literature have focused on the asymptotics of how many samples are required and the probability of making an error for a fixed batch of samples. We investigate an alternative scenario where observations are available in sequence and can be stopped as soon as there is reasonable certainty of correct reconstruction. For the random Gaussian ensemble we show that a simple stopping rule gives the absolute minimum number of observations required for exact recovery, with probability one. However, for other ensembles like Bernoulli or Fourier, this is no longer true, and the rule is modified to trade off delay in stopping and probability of error. We also describe a stopping rule for the nearsparse case which tells when enough observations are made to reach a desired tolerance in reconstruction. Sequential approach to compressed sensing involves the solution of a sequence of linear programs, and we outline how this sequence can be solved efficiently.
and Instance Optimal Decoding by Thresholding in Compressed Sensing by Albert Cohen, Wolfgang Dahmen, and Ronald DeVore. The abstract reads:
Compressed Sensing seeks to capture a discrete signal x element of R^N with a small number n of linear measurements. The information captured about x from such measurements is given by the vector y = \phi x element of R^n where  is an n x N matrix. The best matrices, from the viewpoint of capturing sparse or compressible signals, are generated by random processes, e.g. their entries are given by i.i.d. Bernoulli or Gaussian random variables. The information y holds about x is extracted by a decoder  mapping R^n into R^N. Typical decoders are based on l1-minimization and greedy pursuit. The present paper studies the performance of decoders based on thresholding. For quite general random families of matrices , decoders are constructed which are instance-optimal in probability by which we mean the following. If x is any vector in R^N, then with high probability applying \delta to y = \phi x gives a vector x :=\Delta (y) such that ||x-x^-|| less than  C_0 \sigma_k(x)_l2 for all k  less than a n / logN provided a is suciently small (depending on the probability of failure). Here \sigma_k(x)_l2 is the error that results when x is approximated by the k sparse vector which equals x in its k largest coordinates and is otherwise zero. It is also shown that results of this type continue to hold even if the measurement vector y is corrupted by additive noise: y = \phi x + e where e is some noise vector. In this case \sigma_k(x)_l2 is replaced by \sigma_k(x)_l2 + ||e||_l2 .

Finally, found on ArXiv,


L1Packv2 is a Mathematica package that contains a number of algorithms that can be used for the minimization of an $\ell_1$-penalized least squares functional. The algorithms can handle a mix of penalized and unpenalized variables. Several instructive examples are given. Also, an implementation that yields an exact output whenever exact data are given is provided.
The Mathematica package is here.

Thursday, September 25, 2008

CS: A Simple Compressive Sensing Algorithm for Parallel Many-Core Architectures (Multi-CPUs, GPUs and the Cell processor)

[For those of you who do not know about compressive sensing, it is the technique that is behind,  among other implementations, the single pixel camera or the "cheap" hyperspectral imager (CASSI). One of the main challenges of this technology is the slow reconstruction process whereby an image is created out of the measurements made by the camera.]

Alexandre Borghi, Jerome Darbon, Sylvain Peyronnet, Tony F. Chan and Stanley Osher just released a paper on the possibility of reconstructing a signal from compressive sensing measurements using multi-CPUs, GPUs and the Cell processor in a paper entitled: A Simple Compressive Sensing Algorithm for Parallel Many-Core Architectures, The abstract reads: 
In this paper we consider the l1-compressive sensing problem. We propose an algorithm specifically designed to take advantage of shared memory, vectorized, parallel and many-core microprocessors such as the Cell processor, new generation Graphics Processing Units (GPUs) and standard vectorized multi-core processors (e.g. quad core CPUs). Besides its implementation is easy. We also give evidence of the efficiency of our approach and compare the algorithm on the three platforms, thus exhibiting pros and cons for each of them.
It is an intriguing paper as most papers trying to deal with GPUs aim at implementing very generic solvers. In this case, the algorithm of the solver is taylored to the hardware available. The figure shows the time it takes for reconstruction for a signal where m/n = 12.5% . The number of non-zero element is m/10. The measurement matrix is a partial DCT.

[ To find out more about Compressive Sensing, please check either the Rice Reference site or Compressive Sensing: The Big Picture ]


Friday, November 23, 2007

StrangeMaps, Nuclear Power, HASP, ML in Space, GPU with Matlab

Taking a break from Compressed Sensing for a moment, here is a strangely addictive site reviewing different types of maps. It's called Strangemaps. Quite timely my first blog entry was about maps and it was about four years ago. Google Maps did not exist then. Things changed indeed, now environmentalists are cheering for nuclear power this is quite a turn of event for those of us who have been in the nuclear engineering field.
Talking about Mississippi, LSU is accepting application for the next HASP flight and the deadline is December 18th. The big difference between a HASP flight and that of a sounding balloon can be found here:

A sounding balloon project I am following with much interest is project WARPED. They have an excellent technical description of what they are doing.


In other news from the KDnuggets weekly e-mail, some items caught my attention: Maybe the birth of a new kind of Journalism in What Will Journalist-Programmers Do?and there is a CFP on the subject of Machine Learning in Space, (Mar 31)

Via GPGPU, AMD is talking about introducing double precision in frameworks using GPUs (Graphics Cards). On the other hand, the NVIDIA CUDA compiler now has a Matlab plug-in where whenever you use a function in Matlab like FFT, this plug-in takes over the job and send it to the Graphics card (GPU). Maybe we can do faster reconstruction in Compressed Sensing using a Partial Fourier Transform and a GPU. Oops I did it again, I spoke about CS.

Friday, November 10, 2006

A C compiler for GPUs

While GPU programming might be fun on its own, the 4 to 5 times increase in speed is not likely to draw a whole slew of people into it. One of the reason may be that if you have to learn a different language, you might as well go straight for an FPGA instead. NVIDIA seems to have figured this out and they just came up with a bridge between the general community and GPU by announcing CUDA a C compiler for GPUs.

Monday, December 22, 2003

Using a Programming Language for your Graphics Card




This Brook Language is interesting. Now one can think of the graphics card as a CPU. Some of the numbers I have seen seem to be in line with some of the FGPA speed I had looked into earlier. Maybe a real use of this type of Hardware is to go after the first prime with 10^6 digits. Or maybe, stream processing is the only way to solve the linear transport equation. A good review of what it or cannot do can be found here. Looks like it is ideally suited for a Monte_carlo type of computation. We did a small study on a shading type of algorithm with an 2 million gates FPGA and the thing was beating a pentium 2 GHz machine a hundredfold. The interesting information was that the FPGA was only running at about 100 MHz. A 2 Ghz general CPU is beaten on a specific purpose computation a hundredfold with a chip clocked at 1/20th the rate.

Printfriendly