Larrabee - Not a GPU?

CUDA, Programming No Comments »

Larrabee, the future computing platform for hardware accelerated programming was planned to be released as a kind of graphics card. However, due to delays in the development of the product Intel decided to change plans and not to release a Larrabee graphic cardRead the rest of this entry »

First CT Meeting 2010

Conferences No Comments »

In the field of image reconstruction there are numerous conferences dealing with CT and nuclear medicine. However, yet there is no true conference solely for CT reconstruction.

Thus I am glad to hear that a new conference is going to take place this year for the first time in Utah, June 6-9, 2010:  The First International Meeting on Image Formationin X-Ray Computed Tomography.

NVIDIA Goes OpenCL - First Driver Available in Early-Access Program

CUDA, Programming No Comments »

Yesterday, NVIDIA announced, to release an OpenCL (Open Computing Language) driver and software development kit (SDK) to developers participating in its OpenCL  Early Access Program. NVIDIA is providing this release to solicit early feedback in advance of a beta release which will be made available to all GPU Computing Registered Developers in the coming months.

OpenCL is being created by the Khronos Group with the participation of many industry-leading companies and institutions including AMD, Apple, Broadcom, IBM, Intel,  NVIDIA and many more. OpenCL aims to be the first royalty-free standard for general-purpose parallel programming of heterogeneous systems. It provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.

Developers can apply to become a GPU Computing Registered Developer at:  www.nvidia.com/opencl. I registered for it. So look forward to some interesting OpenCL code in a future post.

A first look at Larrabee

Programming No Comments »

The invent of CUDA offered a new flexibility for scientific programming of the graphic card without the need to learn special graphic languages. However, getting your stuff to work with CUDA is not always that easy due to compiler limitations. For porting old code, you are most likely required to write complete parts new.

Intel announced already some time ago a new GPU code-named Larrabee. It is likely that Intel targets also the scientific programming community, as the platform has some nice benefits:

  1. It is x86 compatible and your code will run with a simple recompilation.
  2. Full support for OpenMP or Intel TBB.
  3. Enhanced 512-bit vector processing units.

However, yet no hardware prototypes are available but writing code is already possible as Intel  provided some C++ implementation of the new Larrabee instruction set extension called LRBni. First prototypes are expected for the end of 2009.

First Medical Experiences at the Fully3D?

At this years Fully3D conference a high-performance workshop will take place. According to the topic list, Larrabee seems to be of some importance. Maybe we will see first prototype applications in Beijing 2009.

For those who don’t want to wait until then, check out these links for more information:

Fully3d 2009 Conference Deadline Extended

Conferences No Comments »

Today the organizers of the 10th international meeting on fully 3-D image reconstruction in radiology and nuclear medicine have announced an extension of the manuscript submission deadline. The new deadline is 17 April 2009. The press release can be found here.

So use the additional time to fine tune your papers … ;-)

Discrete random element selection based on a user-specified probability

Matlab, Programming, Statistics No Comments »

Yesterday, an algorithmic idea came into my mind which required a specific component:

  • Given: Set of discrete delements E(i). Likelihood P(i) for the occurence of an element E(i).
  • Goal: A function which returns a random element from E based on the distribution described by P.

What is this useful for? Well, I wanted to implement some kind of stochastic gradient descent algorithm for image registration without gradients but given a certain likelihood for a point to increase the cost function value. However, I think this kind of function comes in handy for many situations.

Matlab Code & Example

I wrote a Matlab function randelement() which solves exactly the problem. It is based on the theory of inverse transform sampling. The link to the download is given below. It is well-documented, that’s why I will only provide a little usage example:

  1. %  select some arbitrary discrete points
  2. E = [-2 0 2 4 6];
  3.  
  4. % select likelihoods for each point
  5. P = [1 0.5 2 0.1 0.5];
  6.  
  7. % get a long vector with elements from P
  8. % distributed according to P
  9. R=randelement(E, [100000 1], P);
  10.  
  11. % verify by looking at the histogram

The histogram will then look somehow similar to this:

histogram

So … this function seems to do what we wanted - I like it!
The latest version of randelement.m can be downloaded here.

C++ 1-Liner: round() your numbers

C++, Programming No Comments »

You know what really hurts? A missing round() function if you really need it. Here is a code snippet for all of those with the same problem.

  1. template <class T>
  2. inline T round(float num)
  3. {
  4.    return static_cast<T>((num>0.0f) ? num+0.5f : num-0.5f);
  5. }

Great Song and Video: We Train Everything

Uncategorized No Comments »

Who said medical imaging is boring? No way! Watch this great video about a Siemens guy who really loves his job with all its facets! Please turn on your sound. Otherwise it won’t be that funny.

Design by j david macor.com.Original WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in