title: CUDA: accumulate data into a large histogram of floats
body: <p>I'm trying to think of a way to implement the following algorithm using CUDA:</p>
  
  <p>Working on a large volume of voxels, for each voxel I calculate an index <code>i</code> and a value <code>c</code>. after the calculation I need to perform <code>histogram[i] += c</code><br>
  <code>c</code> is a float value and the histogram can have up to 15,000 bins.</p>
  
  <p>I'm looking for a way to implement this efficiently using CUDA. The first obvious problem is that with compute capabilities 1.3 which is what I'm using I can't even do an <code>atomicAdd()</code> of floats so how can I accumulate anything reliably?</p>
  
  <p><a href="http://developer.download.nvidia.com/compute/cuda/1_1/Website/projects/histogram256/doc/histogram.pdf" rel="nofollow noreferrer">This example by nVidia</a> does something somewhat simpler. The histograms are saved in the shared memory (which I can't do due to its size) and it only accumulates integers. Can this approach be generalized to my case?</p>