Skip to content

Create page for GSoC 2020 #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ source "https://rubygems.org"
# gem "jekyll", "~> 3.8.5"

# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.0"
gem "minima", "~> 2.5.1"

# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
Expand Down
4 changes: 4 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ navigation:
- title: Advanced
url: https://pcl-advanced.readthedocs.io/

header_pages:
- gsoc-2020.md
- about.md

# Exclude from processing.
# The following items will not be processed, by default. Create a custom list
# to override the default setting.
Expand Down
2 changes: 1 addition & 1 deletion _includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
{%- for path in page_paths -%}
{%- assign my_page = site.pages | where: "path", path | first -%}
{%- if my_page.title -%}
<a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a>
<a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.short | default: my_page.title | escape }}</a>
{%- endif -%}
{%- endfor -%}
</div>
Expand Down
17 changes: 17 additions & 0 deletions assets/images/gsoc-2020/gsoc-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions assets/main.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# Only the main Sass file needs front matter (the dashes are enough)
---

@import "minima";

.center {
display: block;
margin-left: auto;
margin-right: auto;
}
Binary file added assets/pdf/gsoc-2020/proposal-bindings.pdf
Binary file not shown.
Binary file added assets/pdf/gsoc-2020/proposal-executor.pdf
Binary file not shown.
Binary file added assets/pdf/gsoc-2020/proposal-gpu.pdf
Binary file not shown.
72 changes: 72 additions & 0 deletions gsoc-2020.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
layout: page
title: Google Summer of Code 2020
short: GSoC 2020
permalink: /gsoc-2020/
---

<img src="{{ '/assets/images/gsoc-2020/gsoc-logo.svg' | relative_url }}" alt="gsoc-logo" width="300" class="center" />


After a long hiatus, PCL is once more participating in the Google Summer of Code initiative, this year with 3 projects.

### Extending PCL for use with Python: Bindings generation using Pybind11

**Student:** [Divyanshu Madan][divyanshu]

**Mentors:** [Kunal Tyagi][kunal], [Andrea Ponza][aponza]

**Proposal:** [url](/assets/pdf/gsoc-2020/proposal-bindings.pdf)

**Summary**

Extending PCL's use case by generating bindings for its use with interface languages like Python, for rapid development and maximal speed. The approach makes use of Pybind11 to expose PCL's C++ code and generate bindings in the form of python modules by using necessary type information. It supports automatic regeneration of the bindings when the underlying C++ code changes, to work with PCL's active development cycle.

### Refactoring, Modernisation & Feature Addition with Emphasis on GPU Module

**Student:** [Haritha Jayasinghe][haritha]

**Mentors:** [Sérgio Agostinho][sergio], [Lars Glud][lars]

**Proposal:** [url](/assets/pdf/gsoc-2020/proposal-gpu.pdf)

**Summary**

Despite being the go-to library for point cloud based computation, PCL can cause some friction to users due to its old-fashioned and sometimes inconsistent API and the lack of certain features. This proposal aims to introduce the following new features to the PCL library;
* GPU implementation of Iterative Closest Point (ICP) algorithm
* Implementation of Fast Resampling of 3D Point Clouds via Graphs

As well as to refactor and modernize the library by means of;
* Introducing better type for point indices, thereby providing support for larger point clouds
* Introducing a fluent API for algorithms
* Modernising the GPU Octree module to align with the it’s CPU counterpart

### Unified API for Algorithms

**Student:** [Shrijit Singh][shrijit]

**Mentors:** [Kunal Tyagi][kunal], [Sérgio Agostinho][sergio]

**Proposal:** [url](/assets/pdf/gsoc-2020/proposal-executor.pdf)

**Summary**

Motivation

With the current trend of increasing parallelism, there is a need for a uniform way of making these parallel implementations available along with the default serial ones. Currently in PCL, this has been done by providing separate classes/functions having independent APIs.

With the integration of execution policies and executors (part of C++23 hopefully) libraries like PCL will be able to provide a unified API to switch between different implementations. To ensure there is no sudden breakage in the existing API, a transition phase is needed to slowly phase out the old API in favour of a unified API.

Implementation

This project aims to transition the existing API to forward-compatible unified API. The basic details are: Using tag dispatching to enable function overloading, allowing user to select between different available implementations. Lack of tags allows PCL to choose best possible implementations, this allows to maintain backward compatibility with current API. Missing implementation for a tag raises compile-time errors Providing SIMD/OpenMP/CUDA implementations of existing algorithms using the proposed unified API.


[divyanshu]: https://github.com/divmadan
[haritha]: https://github.com/haritha-j
[shrijit]: https://github.com/shrijitsingh99

[aponza]: https://github.com/aPonza
[kunal]: https://github.com/kunaltyagi
[sergio]: https://github.com/SergioRAgostinho
[lars]: https://github.com/larshg