GSoC Wrap up

It’s almost August 23rd and that signals the end of GSoC ’16. For the final review I’m required to summarize my work during the past 4 or so months. I figured a blog post was the perfect place for this. For GSoC this year I’ve worked to improve OpenCL support for BRL-CAD. I started off […]

A quick update on yesterday’s post. I went through the code as promised. The issue does indeed seem pointer related. Fields on the CPU partition structure (seg and hit) are simply pointers. Currently I have replicated this version of partition, but I doubt this can be achieved on the GPU. I’ll explore this a little […]

Pointer Usage

I think the run time errors are due to improper use of pointers. I believe I’m assigning values to seg and part pointers without allocation memory appropriately first. Obviously malloc() can’t be used on the kernel. So I’ll review my entire code keeping this in mind and see what I can do. If this fails […]

Runtime debugging

Like I said earlier, I fixed all the compile errors and moved onto runtime errors. Currently the kernel weave function spits out garbage in place of partitions. I spent most of yesterday trying to figure out what was wrong. It’d be nice to have Vasco to bounce thoughts off, hut he’s still recovering from his […]

Compile errors

I finished writing up an initial draft for weave on the kernel. I finally compiled it and it obviously contained a host of errors. To prevent rebuilding after every small change, I started editing the rt.cl in share/opencl instead of the one in src. I also wrote code for weaving 0 thickness segments. I’m very […]

Back to work

I feel a lot better after some rest and antibiotics. Back to work today. I wrote some more kernel code for weaving and created functions to insert partitions, and add segments to partitions. I hope Vasco recovers soon, it’d be nice to have my code reviewed. Before that I need to complete at least the […]

Fever go away

I got back to college for mmy new term and looks like my body isn’t liking the weather here too much. I’m down with a horrible throat infection and a fever again. I’ve been bunking class and just sleeping the whole day. This is the worst possible time for a fever from a GSoC perspective, […]

First attempt at GPU weaving

Spent sometime writing kernel code. The primary task at hand was to convert the partition list from the doubly linked list representation. I’ve attempted to rewrite this as an array. The code is obviously untested at the moment. I haven’t even checked for compile errors as certain functions haven’t been defined. Basically, I assumed some […]

Partition size

While writing weaving kernel code I realized that list of partitions actually grows dynamically, so does list of unique segments in pt_seglist (went through my proposal just now, and this is in fact mentioned there). I took a piece of paper and doodled around a bit. Turns out 2*(number of segs) could be an upper […]

A quick one today. As I mentioned yesterday, I started work on the GPU boolean weaving. First thing I started was the kernel code for weaving. A number of sanity checks and print statements needed to be removed. I stopped at the point of creating a function to add new partition. At this point, it […]