Skip to content

Commit

Permalink
Add GPU GSoC project (#2221)
Browse files Browse the repository at this point in the history
Also slightly improve the "All projects" page, which rendered badly.
  • Loading branch information
maleadt authored Jan 17, 2025
1 parent 9308e09 commit 2bfa091
Show file tree
Hide file tree
Showing 23 changed files with 156 additions and 118 deletions.
4 changes: 1 addition & 3 deletions jsoc/allprojects.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
## View all GSoC/JSoC Projects
# View all GSoC/JSoC Projects

This page is designed to improve discoverability of projects. You can, for example, search this page for specific keywords and find all of the relevant projects.

## Projects

{{ all_gsoc_projects }}
7 changes: 3 additions & 4 deletions jsoc/gsoc/MLJ.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# MLJ.jl Projects – Summer of Code
@def mintoclevel = 2

# MLJ.jl Projects - Summer of Code

[MLJ](https://github.com/alan-turing-institute/MLJ.jl) is a machine
learning framework for Julia aiming to provide a convenient way to use
and combine a multitude of tools and models available in the Julia
ML/Stats ecosystem.


### List of projects

MLJ is released under the MIT license.

\toc
Expand Down
17 changes: 0 additions & 17 deletions jsoc/gsoc/compiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,3 @@ BoF calendar invite][threadcall] on the Julia Language Public Events calendar.

**Recommended Skills**: Varies by project, but generally some multi-threading and C experience is needed\
**Contact:** [Jameson Nash](https://github.com/vtjnash)


## Automation of testing / performance benchmarking (350 hours)

The Nanosoldier.jl project (and related <https://github.com/JuliaCI/BaseBenchmarks.jl>) tests for
performance impacts of some changes. However, there remains many areas that are not covered (such as
compile time) while other areas are over-covered (greatly increasing the duration of the test for no
benefit) and some tests may not be configured appropriately for statistical power. Furthermore, the
current reports are very primitive and can only do a basic pair-wise comparison, while graphs and
other interactive tooling would be more valuable. Thus, there would be many great projects for a
summer contributor to tackle here!

**Expected Outcomes**: Improvement of Julia's automated testing/benchmarking framework.
**Skills**: Interest in and/or experience with CI systems.
**Difficulty**: Medium

**Contact:** [Jameson Nash](https://github.com/vtjnash), [Tim Besard](https://github.com/maleadt)
2 changes: 1 addition & 1 deletion jsoc/gsoc/contractionorder.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Tensor network contraction order optimization and visualization
# Tensor network contraction order optimization and visualization – Summer of Code

[OMEinsum.jl](https://github.com/under-Peter/OMEinsum.jl) is a pure Julia package for tensor network computation,
which has been used in various projects, including
Expand Down
2 changes: 1 addition & 1 deletion jsoc/gsoc/documenter.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Documentation tooling
# Documentation tooling – Summer of Code

## Documenter.jl

Expand Down
28 changes: 28 additions & 0 deletions jsoc/gsoc/gpu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# GPU Projects - Summer of Code

[JuliaGPU](https://github.com/JuliaGPU) provides a suite of packages for programming GPUs in Julia. We have support for AMD, NVIDIA and Intel GPUs through various backends, unified by high-level array abstractions and a common programming model based on kernel programming.

## Improving GPU Stack Portability

**Difficulty:** Medium

**Duration:** 175 or 350 hours (the scope of functionality to port can be adjusted accordingly)

**Description:** The Julia GPU stack consists of several layers, from low-level vendor-specific packages like CUDA.jl to high-level abstractions like GPUArrays.jl. While the high-level packages aim to be vendor-agnostic, many optimized operations are still implemented in vendor-specific ways. This project aims to improve portability by moving these implementations to GPUArrays.jl using KernelAbstractions.jl.

The project will involve:
- Identifying vendor-specific kernel implementations in packages like CUDA.jl
- Porting these kernels to KernelAbstractions.jl in GPUArrays.jl
- Improving KernelAbstractions.jl where needed to support these kernels
- Ensuring performance remains competitive with vendor-specific implementations
- Adding tests to verify correctness across different GPU backends

**Required Skills:**
- Experience with Julia programming
- Familiarity with GPU programming concepts
- Experience with GPU programming in Julia is a plus
- Understanding of performance optimization

**Expected Results:** A set of optimized GPU kernels in GPUArrays.jl that are vendor-agnostic and performant across different GPU backends. This will improve the portability of the Julia GPU stack and make it easier to support new GPU architectures.

**Mentors:** [Tim Besard](https://github.com/maleadt), [Valentin Churavy](https://github.com/vchuravy)
2 changes: 1 addition & 1 deletion jsoc/gsoc/graphics.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Removed reference to this file on the main projects page for summer 2021 since they weren't updated.
-->

# Graphic Projects – Summer of Code
# Graphic Projects – Summer of Code

## Makie

Expand Down
2 changes: 1 addition & 1 deletion jsoc/gsoc/juliaconstraints.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Constraint Programming in Julia
# Constraint Programming in Julia – Summer of Code

[JuliaConstraints](https://juliaconstraints.github.io/) is an organization supporting packages for Constraint Programming in Julia. Although it is independent of it, it aims for a tight integration with JuMP.jl over time. For a detailed overview of basic Constraint Programming in Julia, please have a look at our video from JuliaCon 2021 [Put some constraints into your life with JuliaCon(straints)](https://youtu.be/G4siuvNMj0c).

Expand Down
8 changes: 4 additions & 4 deletions jsoc/gsoc/juliagenai.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# JuliaGenAI Projects
# JuliaGenAI Projects – Summer of Code

![JuliaGenAI Logo](https://github.com/JuliaGenAI/juliagenai.org/blob/main/assets/logos/logo-256.png?raw=true)

Expand Down Expand Up @@ -68,7 +68,7 @@ Julia stands out as a high-performance language that's essential yet underrepres
**Project Goals and Deliverables:**

1. **Knowledge Base Expansion:** Grow the AIHelpMe.jl knowledge base to include comprehensive, up-to-date resources from critical Julia ecosystems such as the Julia documentation site, DataFrames, Makie, Plots/StatsPlots, the Tidier-verse, SciML, and more. See [Github Issue](https://github.com/svilupp/AIHelpMe.jl/issues/3) for more details. This expansion is crucial for enriching the context and accuracy of AI-generated responses related to Julia programming.

2. **Performance Tuning:** Achieve at least a 10% improvement in accuracy and relevance on a golden Q&A dataset, refining the AIHelpMe.jl Q&A pipeline for enhanced performance.

### Project 4: Enhancing Julia's AI Ecosystem with ColBERT v2 for Efficient Document Retrieval
Expand Down Expand Up @@ -147,7 +147,7 @@ As a pivotal resource for the Julia community, the [Julia LLM Leaderboard](https

### Project 7: Counterfactuals for LLMs (*Model Explainability* and *Generative AI*)

**Project Overview:** This project aims to extend the functionality of [CounterfactualExplanations.jl](https://github.com/JuliaTrustworthyAI/CounterfactualExplanations.jl) to Large Language Models (LLMs). As a backbone for this, support for computing feature attributions for LLMs will also need to be implemented. The project will contribute to both [Taija](https://github.com/JuliaTrustworthyAI) and [JuliaGenAI](https://github.com/JuliaGenAI).
**Project Overview:** This project aims to extend the functionality of [CounterfactualExplanations.jl](https://github.com/JuliaTrustworthyAI/CounterfactualExplanations.jl) to Large Language Models (LLMs). As a backbone for this, support for computing feature attributions for LLMs will also need to be implemented. The project will contribute to both [Taija](https://github.com/JuliaTrustworthyAI) and [JuliaGenAI](https://github.com/JuliaGenAI).

**Mentor:** [Jan Siml](https://github.com/svilupp) (JuliaGenAI) and [Patrick Altmeyer](https://github.com/pat-alt) (Taija)

Expand All @@ -170,6 +170,6 @@ As a pivotal resource for the Julia community, the [Julia LLM Leaderboard](https

We'd love to hear your ideas and discuss potential projects with you.

Probably the easiest way is to join our [JuliaLang Slack](https://julialang.org/slack/) and join the `#generative-ai` channel.
Probably the easiest way is to join our [JuliaLang Slack](https://julialang.org/slack/) and join the `#generative-ai` channel.
You can also reach out to us on [Julia Zulip](https://julialang.zulipchat.com/#narrow/stream/423470-generative-ai) or post a GitHub Issue on our website [JuliaGenAI](https://github.com/JuliaGenAI/juliagenai.org).

Loading

0 comments on commit 2bfa091

Please sign in to comment.