I managed to find some time to play with Qt this weekend. Firstly, I am rather impressed by the new IDE: While not quite as good as eclipse in terms of editing it seems more stable and uses FAR less memory. It is definately more user friendly than my visual studio 2003 and has a nice auto-complete feature that seems to actually work.
The new widgets and libraries are great if a little large and its pretty quick to whip something together. A nice touch in the IDE is the ability to just drag and drop signals to slots right on the visual layout of the form.
Monday, 9 March 2009
Friday, 6 March 2009
Qt 4.5
As my raytracer is getting more and more complex with lots of dynamic options and movement controls trying to remember keypresses from a command window to turn things off and on is getting increasingly difficult.
The time has come to build a proper interface for the rendering window. Now as I dont want to spend too much time developing this from scratch I thought I'd have another look at Qt (pronounced cute). Its been quite a while and a good few versions since I last used it, and am pleasently surprised at the improvements and additions. As it does offer openGL widget / rendering it is the perfect library to use for my raytracer. Using openGL and Qt still gives me the option of going cross-platform on the raytracer and as the memory handling / page locked mem is faster on linux this could give a few more fps :)
In short, if you are looking at a C++ friendly interface designer you could do a lot worse than using the new Qt. (http://www.qtsoftware.com/)
The time has come to build a proper interface for the rendering window. Now as I dont want to spend too much time developing this from scratch I thought I'd have another look at Qt (pronounced cute). Its been quite a while and a good few versions since I last used it, and am pleasently surprised at the improvements and additions. As it does offer openGL widget / rendering it is the perfect library to use for my raytracer. Using openGL and Qt still gives me the option of going cross-platform on the raytracer and as the memory handling / page locked mem is faster on linux this could give a few more fps :)
In short, if you are looking at a C++ friendly interface designer you could do a lot worse than using the new Qt. (http://www.qtsoftware.com/)
Thursday, 5 March 2009
GPU Radix Sort
In the ongoing search of finding efficient GPU sorting algorithms I came across the following paper: http://mgarland.org/files/papers/gpusort-ipdps09.pdf by Nadathur Satish, Mark Harris, and Michael Garland. It is a preprint for the 23rd IEEE Int’l Parallel & Distributed Processing Symposium, May 2009 (http://www.ipdps.org/).
I have not tested if it is faster than the GPU quicksort (http://www.cs.chalmers.se/~dcs/gpuqsortdcs.html). Normal quicksort does slow down on nearly sorted or already sorted data so a radix sort might exhibit more stable behaviour.
I have not tested if it is faster than the GPU quicksort (http://www.cs.chalmers.se/~dcs/gpuqsortdcs.html). Normal quicksort does slow down on nearly sorted or already sorted data so a radix sort might exhibit more stable behaviour.
Thursday, 26 February 2009
Voxels, Dynamic Grids, KD Trees
During the course of developing my raytracer I've investigated various acceleration structures and made comments on them in previous posts.
My primary focus has been ray tracing of dynamic scenes where you would need to re-calculate the acceleration structure for each frame. As a result of this I ruled out KD-Trees (even SAH partitioned ones) early on and concentrated on methods which could be implemented well in parallel. The voxel method with fixed maximum object counts served me very well in early implementations. It is very quick to compute in parallel and its memory accesses on traversal are very kind to a CUDA implementation. However as the number of objects in my scenes have increased, it has caused problems with this fixed max element voxel structure. It is possible for the number of element to exceed the maximum in the cell thereby resulting in visual artifacts / lost objects. Increasing the maximum elements per cell slows down the raytracing stage too much even though the objects are no longer lost. To overcome this limitation I increased the number of cells in the grid. Again this works, but slows down the raytracing due to the higher number of voxels needing to be traversed. I was using a mesh of slightly overlapping spheres as they are much quicker to run intersection tests against rather than the standard cube approach.
My primary focus has been ray tracing of dynamic scenes where you would need to re-calculate the acceleration structure for each frame. As a result of this I ruled out KD-Trees (even SAH partitioned ones) early on and concentrated on methods which could be implemented well in parallel. The voxel method with fixed maximum object counts served me very well in early implementations. It is very quick to compute in parallel and its memory accesses on traversal are very kind to a CUDA implementation. However as the number of objects in my scenes have increased, it has caused problems with this fixed max element voxel structure. It is possible for the number of element to exceed the maximum in the cell thereby resulting in visual artifacts / lost objects. Increasing the maximum elements per cell slows down the raytracing stage too much even though the objects are no longer lost. To overcome this limitation I increased the number of cells in the grid. Again this works, but slows down the raytracing due to the higher number of voxels needing to be traversed. I was using a mesh of slightly overlapping spheres as they are much quicker to run intersection tests against rather than the standard cube approach.
Monday, 16 February 2009
My computer is full of Stars!
And galaxies! On thursday my colleague Richard (www.boakes.org) pointed me to http://www.great08challenge.info/ Apparently he studied cosmology before completing his Phd in the Semantic Web and still has an interest in it.
So far I've downloaded the small sets of data. The full set is around 100gb of compressed fits images so will take a while on my rather slow BT connection, not to mention exceed my 30gb cap... I have not looked at the data yet and will need to construct or download a fits viewer.
So far I've downloaded the small sets of data. The full set is around 100gb of compressed fits images so will take a while on my rather slow BT connection, not to mention exceed my 30gb cap... I have not looked at the data yet and will need to construct or download a fits viewer.
Thursday, 5 February 2009
Snow!
This morning I woke up to discover even more snow had fallen than there had been on Monday. The weather people claim that this is rather unusual for this part of England.
Here is a picture of Buttercup, my Landrover, on our way to work this morning. The towrope and winch at the ready to help any lesser vehicles.
[caption id="attachment_450" align="alignnone" width="450" caption="On the way to work after heavy snow."]
[/caption]
For once I have refrained from running any Gaussian PSF or Edge detector on the poor Buttercup :)
Here is a picture of Buttercup, my Landrover, on our way to work this morning. The towrope and winch at the ready to help any lesser vehicles.
[caption id="attachment_450" align="alignnone" width="450" caption="On the way to work after heavy snow."]
[/caption]For once I have refrained from running any Gaussian PSF or Edge detector on the poor Buttercup :)
Monday, 2 February 2009
CUDA Positions
Apart from the NVidia CUDA employment forum there seems to be a lack of sites where adverts may be placed specific to CUDA development.
I decided to add a page (http://www.bv2.co.uk/?page_id=429) for companies to advertise their available permanent or contract roles involving CUDA (or OpenCL) or for individuals and groups to advertise their availability for full time employment or contract work. Development teams specializing in CUDA development are welcome to add their names here too. If you would like your free advert to appear on the page just add a comment or drop me an email. If we get enough I’ll soon update the page to a decent view.
I decided to add a page (http://www.bv2.co.uk/?page_id=429) for companies to advertise their available permanent or contract roles involving CUDA (or OpenCL) or for individuals and groups to advertise their availability for full time employment or contract work. Development teams specializing in CUDA development are welcome to add their names here too. If you would like your free advert to appear on the page just add a comment or drop me an email. If we get enough I’ll soon update the page to a decent view.
Subscribe to:
Posts (Atom)