Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

GPU Merge Sort for Unity

Usage

Init

BitonicMergeSort_sort;ComputeBuffer_keys,_values;varcount=1<<10;_sort=newBitonicMergeSort(compute);_keys=newComputeBuffer(count,Marshal.SizeOf(typeof(uint)));_values=newComputeBuffer(count,Marshal.SizeOf(typeof(float)));varkey_data=newuint[count];varvalue_data=newfloat[count];_keys.SetData(key_data);for(vari=0;i<count;i++)value_data[i]=Random.value;_values.SetData(value_data);

Sort

_sort.Init(_keys);_sort.Sort(_keys,_values);

Output

_keys.GetData(key_data);for(vari=0;i<count;i++)Debug.Log(value_data[key_data[i]]);

Dispose

voidOnDestroy(){if(_sort!=null)_sort.Dispose();if(_keys!=null)_keys.Dispose();if(_values!=null)_values.Dispose();}

References

  1. mre/bitonic_sort.cu - Gist
  2. Chapter 46. Improved GPU Sorting - GPU Gems 2
  3. Bitonic sorter - Wikipedia

About

No description, website, or topics provided.

Resources

Stars

52 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages