Ok, I've now managed to see your draft proposal (thanks for granting read access).
You seem to have done your homework with regards to the CG aspects of the problem. However we typically expect implementation and planning detail more than CG theory in the proposal. You don't seem to have had enough time to look into BRL-CAD (source code) proper though. There already is a basic OpenCL rendering pipeline implementation with several primitives, the thing is, there are still more primitives to port and several further code optimizations could be done to improve performance in several stages of the rendering pipelines. I have a recently up to date summary of the status of the OpenCL raytracer code here: http://brlcad.org/wiki/User:Vasco.costa Since someone else is interested in the primitives work as well this year, we could split that work among you both, but I get that you have experience with HPC code optimization? In that case, you could include code optimization in your work plan. For example you could work on some of these elements of the TODO list I link to above: - Split struct hit in common.cl into two structs. One for shot() results and another for norm() results. This will reduce the amount of memory used to store temporary results between stages. (EASY) - Execute prefix sums and reductions in clt_frame() on the device to eliminate round-trips. (MEDIUM) - Refactor code so single-hit and multi-hit don't require recompiling all the sources twice. - Cache the compiled binaries so things aren't recompiled on every launch. (EASY) - Don't intersect primitives twice. This requires a dynamic memory allocator. (HARD) - Smarter kernel scheduling for reduce thread divergence. For example coallesce all the quadric intersections. (MEDIUM) - Spatial partitioning (perhaps a hybrid Kd-tree) in order to have early exit on scenes with high depth complexity. (HARD) The current OpenCL librt code is mostly under this part of the source code tree: https://svn.code.sf.net/p/brlcad/code/brlcad/trunk/src/librt/ It's in the .cl files and primitives/primitive_util.c You can learn more about how to use BRL-CAD with the quick reference card: http://brlcad.org/w/images/5/52/MGED_Quick_Reference_Card.pdf With regards to OpenCL, since you know C/C++ you can read these resources: https://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf https://yosefk.com/blog/simd-simt-smt-parallelism-in-nvidia-gpus.html Regards, On Mon, Mar 26, 2018 at 8:08 PM, Vasco Alexandre da Silva Costa <vasco.co...@gmail.com> wrote: > Hello, > You have uploaded your proposal to the GSoC website but you haven't > given us permissions to view your draft proposal so we can comment on > it before the deadline. > > We also expect students to introduce themselves to the community (in > our case this is typically done via this project mailing-list or the > project IRC chat channel). In this way we can get to know you and > discuss your work proposal to increase your chances of a smooth GSoC > experience. > > These steps are summarized here: > http://brlcad.org/wiki/Summer_of_Code/Checklist > > Also, we typically request that students provide a working proof that > they can modify the codebase, in your case, this can be as simple as > providing a patch to port one of the easier to port quadrics > primitives, like HYP (Hyperboloid), from ANSI C to OpenCL. It > shouldn't be too hard to do since you can use one of the other already > ported primitives (like ELL) as a template. You basically need to port > the ray-primitive intersection (shot) code from C to OpenCL and to > provide the glue code which packs and unpacks that primitive from the > C side to the OpenCL side. > > (sorry for re-sending this e-mail as I didn't put the mailing-list in > the CC properly) > > Regards, > > -- > Vasco Alexandre da Silva Costa > PhD in Computer Engineering (Computer Graphics) > Instituto Superior Técnico/University of Lisbon, Portugal -- Vasco Alexandre da Silva Costa PhD in Computer Engineering (Computer Graphics) Instituto Superior Técnico/University of Lisbon, Portugal ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ BRL-CAD Developer mailing list brlcad-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-devel