Editing GSoCPastProjects

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 152: Line 152:
Video presentation at GRCon 2015: https://www.youtube.com/watch?v=D49RKQRwe_Y&index=10&list=PLbBQHMnVMR41WSEeX3wEn2gzybt7_GcQJ
Video presentation at GRCon 2015: https://www.youtube.com/watch?v=D49RKQRwe_Y&index=10&list=PLbBQHMnVMR41WSEeX3wEn2gzybt7_GcQJ
== 2014 ==
==== Radar toolbox ====
Radar is a great application for SDR. Creating an OOT module that implements some of the most commonly used radar processing algorithms would be a great tool for people to experiment with radar.
===== Objectives =====
Create an OOT module (gr-radar); implement and experimentally verify them.<br />
Algorithms that could be implemented include:
* OFDM-Radar
===== Requirements =====
General understanding of radar and RF/antennas. Algorithms would be coded in C++ and Python, so at least a basic knowledge of these should be available.
* Student: Stefan Wunsch (CEL / KIT)
* Mentor: Martin Braun
==== VOLK and General Purpose Processor Optimization ====
[[volk|VOLK]] is an in-tree library that provides signal processing kernels to make use of SIMD instruction sets. SSE and subsequent extensions are widely used, and there is moderate coverage of AVX. ORC is used to fill in the gaps where we know there is low hanging fruit, but have not had time to implement proto-kernels in various instruction sets. There is also a [http://stats.gnuradio.org/ stats page] to collect profiling information across processors.
There are a number of projects that could be formed by an interest in VOLK, and the exact proposal should be formed around the applicant's interests. The primary need is for more kernels. VOLK currently does not have AVX2 or AMD64 FMA extensions. NEON support is lacking as well, but that is currently being addressed and will likely be finished by the time GSoC begins.
Outside of adding different instruction set extensions VOLK could use new kernels based on profiling existing GNU Radio and OOT module code. There is (unsurprising) evidence that more complex operations benefit more from VOLK than very quick operations. This opens the door for implementing entire algorithms in VOLK such as frame detection, or channel coding. Other kernels that could be interesting include rounding out the general signal processing functions such as pow, logs, trig functions, etc... If specific algorithms are not mentioned in the applications then the first assignment would be a suggested reading list to identify a handful that would be interesting to the student.
'''Project Goals''': This project should profile existing applications and blocks to identify CPU bottle necks that could be alleviated with SIMD acceleration, then implement proto-kernels targeting bottle necks. The mentor would be able to provide good blocks and algorithms to profile which would yield large gains from VOLK.
'''Requirements''': An interest in software optimization with applications to DSP is the only real requirement. VOLK is a C library that is primarily used in C++. Since the target is hardware instruction set extensions knowledge of ASM programming is useful, but will not be required unless the student specifically wishes to do so.
* Mentor: Nathan West
* Student: Abhishek Bhowmick
==== Using hardware based co-processors in GNU Radio ====
Last year, there was a GSoC project that showed the basic steps for creating a Zynq based FPGA accelerator ([[Zynq|Zynq]]). This year we would like to explore better GNU Radio integration by avoiding copying samples in and out of the GNU radio block, and adding real accelerators. In addition to working with the Xilinx zynq system, there are TI Keystone 2 processors that have quad ARM cortex-a15 combined with several TI DSP processors and some hardware accelerators. The Keystone 2 devices are also good candidates for improved GNU Radio hardware accelerator integration.
===== Objective =====
Improve the current state if the art of GNU Radio integration with hardware accelerators.
===== '''Requirements''' =====
The student should have access to the hardware they propose to work with. A good understanding of embedded systems will help the student complete the project successfully. The student should be comfortable working with the Linux kernel, or be prepared to learn quickly. Successful candidates are expected to particpate in the GNU Radio co-prcocessor working group.
* Mentor: Philip Balister
* Student: Alfredo Muniz
==== GNU Radio Performance Benchmark Analysis ====
The focus of this effort would be to investigate and mature the performance data analysis tools on http://stats.gnuradio.org to gain visibility into the performance impact of differing hardware, processor extension, and compiler configurations among other things. This effort should also look at the performance comparison of differing GNU Radio versions over time, such that we should notice immediately and in a quantitative way when performance-enhancing or performance-adverse changes are introduced into GNU Radio. Ultimately these tools are important from a system engineering perspective in helping size SDR applications to SDR hardware platforms, and helping focus optimization and development efforts needed to improve performance in the future.
===== '''Primary objective''' =====
Help provide improvements to GNU Radio benchmarking and performance analysis tools to improve general understanding of GNU Radio performance bottle necks and performance variation across different architectures, compilers, optimizations, etc.
===== '''Secondary Objective''' =====
Introduce new GNU Radio benchmarks to exercise important signal processing techniques and algorithms which are yet to be represented in the standard gr-benchmark suite of tools.
===== '''Tertiary Objective''' =====
Test and collect performance data on interesting processing platforms which have yet to be included in the stats.gnuradio.org data set. This could include Tilera, Epiphany, ARM-A15, MIPS, Paralella, PPC, or any number of interesting platforms. Ensuring everything is operating correctly on ARM platforms and potentially focusing on improving performance on this platform is a potential as well.
===== '''Requirements''' =====
This project requires an understanding of C++, Python, and software performance profiling but not neccisarily a large background in signal processing, although it would be helpful. Skills working with Google's JSAPI and MySQL would be helpful for performing data analysis and presentation as well - an ability to navigate the linux operating system would be extremely helpful, but is not the only key OS of relevence here. The student must also communicate with the community on both the mailing list and the IRC channel (#gnuradio).
* Mentor: Tim O'Shea
* Student: Marcus Müller (CEL / KIT)
==== gr-trellis improvements ====
* Mentor: Sebastian Koslowski
* Student: Jan Krämer (CEL / KIT)
== 2013 ==
== 2013 ==

Please note that all contributions to GNU Radio are considered to be released under the Creative Commons Attribution-ShareAlike (see GNU Radio:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)