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

Reply via email to