The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

captnjohnny1618 (1) [Avatar] Offline
#1
Hi Matt (and anyone else out there),

First of all, I love the book. It's so helpful and worth every penny.

I've gotten my first kernel up and running and I'm using it for processing these raw data arrays from CT scanners. I developed it on "toy" datasets (much smaller than the actual data) so the processing would be easier, faster, etc. and then have been progressively scaling it up. When the array size gets large enough (and any size beyond), after about twelve seconds of processing the program will return and all of my "processed" data will just be big lumps of zeros. Not particularly helpful.

After trying fruitlessly to debug for the last week or so I finally happened across a forum post discussing Nvidia's "watchdog" feature for their cards connected to displays and with several people reporting results similar to mine. I'm running my code on the Nvidia Geforce 9400M in my late 2009 Macbook; the card also drives my display.

I was wondering if you had any experience with this phenomenon? As far as I can tell it's not discussed in the book, and largely poorly documented online through the anecdotal experience of others.

I can definitely devise ways of coding the kernel to get around this, but I nearly threw my computer off of a twelve story building since everything builds fine, returns fine, but the data is just incorrect (i.e. no errors are thrown) and this doesn't seem to be an incredibly common issue. As a new programmer, without any errors thrown it was infuriating and disheartening.

Thanks for your time and a great book,
John H.

P.S. I'm 99.9% that there also aren't any other coding issues going on. At one point I was having this SAME trouble for all input/output matrix sizes and it was due to my trying to index one of the arrays with a negative number. I have also separately written a standard c program with the same kernel code and that works just fine for all matrix sizes that I would use. Others also seem to have had this issue when kernel argument types don't match the clmem type they give them. Finally, after my matrices get bigger than a certain point, the program invariably bails out after about 12.5 seconds, never more, never less.