Skip to content

Commit f6fe5a5

Browse files
committed
Implement tag filtering.
1 parent ff3037b commit f6fe5a5

File tree

5 files changed

+80
-134
lines changed

5 files changed

+80
-134
lines changed

_data/openprojectlist.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
As an extended goal, we aim to develop a new plugin for GPU execution,
2727
leveraging CUDA or OpenMP to support high-performance computing workflows
2828
within Jupyter.
29-
3029
tasks: |
3130
* Move the currently implemented magics and reframe using xplugin
3231
* Complete the on-going work on the Python interoperability magic
3332
* Implement a test suite for the plugins
3433
* Extended: To be able to execute on GPU using CUDA or OpenMP
3534
* Optional: Extend the magics for the wasm use case (xeus-cpp-lite)
3635
* Present the work at the relevant meetings and conferences
36+
tags: ["xeus", "xeus-cpp", "clang", "clang-repl", "jupyter", "gpu", "cuda", "python", "plugins"]
3737

3838
- name: "Enhancing LLM Training with Clad for efficient differentiation"
3939
description: |
@@ -61,7 +61,6 @@
6161
has the potential to enhance both research and production-level AI
6262
applications, aligning with compiler-research.org's broader goal of
6363
advancing computational techniques for scientific discovery.
64-
6564
tasks: |
6665
* Develop a simplified LLM setup in C++
6766
* Apply Clad to compute gradients for selected layers and loss functions
@@ -71,6 +70,7 @@
7170
* Develop tests to ensure correctness, numerical stability, and efficiency
7271
* Document the approach, implementation details, and performance gains
7372
* Present progress and findings at relevant meetings and conferences
73+
tags: ["clad", "llm", "ai", "machine-learning", "automatic-differentiation", "cpp", "optimization"]
7474

7575
- name: "Integrate Clad in PyTorch and compare the gradient execution times"
7676
description: |
@@ -85,7 +85,6 @@
8585
computed by PyTorch's native autograd system. Special attention will be
8686
given to CUDA-enabled gradient computations, as PyTorch also offers GPU
8787
acceleration capabilities.
88-
8988
tasks: |
9089
* Incorporate Clad's API components (such as `clad::array` and `clad::tape`)
9190
into PyTorch using its C++ API
@@ -96,6 +95,7 @@
9695
* Document thoroughly the integration process and the benchmark results and identify
9796
potential bottlenecks in Clad's execution
9897
* Present the work at the relevant meetings and conferences.
98+
tags: ["clad", "pytorch", "python", "cuda", "benchmarking", "automatic-differentiation", "gpu"]
9999

100100
- name: "Enable automatic differentiation of C++ STL concurrency primitives in Clad"
101101
description: |
@@ -104,14 +104,14 @@
104104
derivatives of the function. This project focuses on enabling automatic differentiation
105105
of codes that utilise C++ concurrency features such as `std::thread`, `std::mutex`,
106106
atomic operations and more. This will allow users to fully utilize their CPU resources.
107-
108107
tasks: |
109108
* Explore C++ concurrency primitives and prepare a report detailing the associated challenges
110109
involved and the features that can be feasibly supported within the given timeframe.
111110
* Add concurrency primitives support in Clad's forward-mode automatic differentiation.
112111
* Add concurrency primitives support in Clad's reverse-mode automatic differentiation.
113112
* Add proper tests and documentation.
114113
* Present the work at the relevant meetings and conferences.
114+
tags: ["clad", "cpp", "stl", "concurrency", "multithreading", "automatic-differentiation"]
115115

116116
- name: "Interactive Differential Debugging - Intelligent Auto-Stepping and Tab-Completion"
117117
description: |
@@ -131,14 +131,13 @@
131131
of the system, then drop to the debugger. This may be achieved by introducing new IDD-specific
132132
commands. IDD should be able to tab complete the underlying GDB/LLDB commands. The contributor
133133
is also expected to set up the necessary CI infrastructure to automate the testing process of IDD.
134-
135-
136134
tasks: |
137135
* Enable stream capture
138136
* Enable IDD-specific commands to execute until diverging stack or variable value.
139137
* Enable tab completion of commands.
140138
* Set up CI infrastructure to automate testing IDD.
141139
* Present the work at the relevant meetings and conferences.
140+
tags: ["debugging", "idd", "gdb", "lldb", "regression", "tooling", "ci"]
142141

143142
- name: "Implement CppInterOp API exposing memory, ownership and thread safety information "
144143
description: |
@@ -166,14 +165,14 @@
166165
cppyy (Python-C++ language bindings) as an exemplar. If time permits, extend
167166
the work to persistify this information across translation units and use it on
168167
code compiled with Clang.
169-
170168
tasks: |
171169
* Collect and categorize possible exposed interop information kinds
172170
* Write one or more facilities to extract necessary implementation details
173171
* Design a language-independent interface to expose this information
174172
* Integrate the work in clang-repl and Cling
175173
* Implement and demonstrate its use in cppyy as an exemplar
176174
* Present the work at the relevant meetings and conferences.
175+
tags: ["cppinterop", "cppyy", "clang-repl", "cling", "interoperability", "ast", "jit"]
177176

178177
- name: "Implement and improve an efficient, layered tape with prefetching capabilities"
179178
description: |
@@ -205,7 +204,6 @@
205204
206205
This project aims to improve the efficiency of the clad tape and generalize
207206
it into a tool-agnostic facility that could be used outside of clad as well.
208-
209207
tasks: |
210208
* Optimize the current tape by avoiding re-allocating on resize in favor of using connected slabs of array
211209
* Enhance existing benchmarks demonstrating the efficiency of the new tape
@@ -214,6 +212,7 @@
214212
* [Stretch goal] Support cpu-gpu transfer of the tape
215213
* [Stretch goal] Add infrastructure to enable checkpointing offload to the new tape
216214
* [Stretch goal] Performance benchmarks
215+
tags: ["clad", "data-structures", "performance", "memory-management", "gpu", "hpc"]
217216

218217
- name: "Enabling CUDA compilation on Cppyy-Numba generated IR"
219218
description: |
@@ -254,7 +253,7 @@
254253
the Numba extension.
255254
* Design and develop a CUDA compilation and execution mechanism.
256255
* Prepare proper tests and documentation.
257-
256+
tags: ["cppyy", "numba", "cuda", "llvm", "ir", "gpu", "python"]
258257

259258
- name: "Cppyy STL/Eigen - Automatic conversion and plugins for Python based ML-backends"
260259
description: |
@@ -278,7 +277,6 @@
278277
techniques in ML tools like JAX/CUTLASS. This project allows the C++
279278
infrastructure to be plugged into at service to the users seeking
280279
high-performance library primitives that are unavailable in Python.
281-
282280
tasks: |
283281
* Extend STL support for std::vectors of arbitrary dimensions
284282
* Improve the initialization approach for Eigen classes
@@ -288,6 +286,7 @@
288286
operations in frameworks like JAX
289287
* Work on integrating these plugins with toolkits like CUTLASS that
290288
utilise the bindings to provide a Python API
289+
tags: ["cppyy", "stl", "eigen", "jax", "cutlass", "numpy", "machine-learning"]
291290

292291
- name: "On Demand Parsing in Clang"
293292
description: |
@@ -401,7 +400,6 @@
401400
Alternative and more efficient implementation could be to make the lookup tables
402401
range based but we do not have even a prototype proving this could be a feasible
403402
approach.
404-
405403
tasks: |
406404
* Design and implementation of on-demand compilation for non-templated functions
407405
* Support non-templated structs and classes
@@ -413,9 +411,9 @@
413411
meetings, deliver presentations, and contribute blog posts as requested.
414412
Additionally, they should demonstrate the ability to navigate the
415413
community process with patience and understanding.
414+
tags: ["clang", "compiler", "parsing", "performance", "memory-optimization", "cling"]
416415

417416
- name: "Broaden the Scope for the Floating-Point Error Estimation Framework in Clad"
418-
419417
description: |
420418
In mathematics and computer algebra, automatic differentiation (AD) is
421419
a set of techniques to numerically evaluate the derivative of a function
@@ -473,7 +471,7 @@
473471
the capabilities of the framework.
474472
* Solve any general-purpose issues that come up with Clad during the process.
475473
* Prepare demos and carry out development needed for lossy compression.
476-
474+
tags: ["clad", "floating-point", "numerical-stability", "benchmarking", "error-estimation"]
477475

478476
- name: "Improve robustness of dictionary to module lookups in ROOT"
479477
description: |
@@ -523,6 +521,7 @@
523521
implementation works.
524522
* Develop tutorials and documentation.
525523
* Present the work at the relevant meetings and conferences.
524+
tags: ["root", "cern", "cpp-modules", "cmssw", "dictionary", "io"]
526525

527526
- name: "Enhance the incremental compilation error recovery in clang and clang-repl"
528527
description: |
@@ -554,6 +553,7 @@
554553
* Find and fix cases where there are bugs
555554
* Implement template instantiation error recovery support
556555
* Implement argument-dependent lookup (ADL) recovery support
556+
tags: ["clang", "clang-repl", "incremental-compilation", "error-recovery", "jit"]
557557

558558
################################################################################
559559
# 2025 #

_includes/blog-post-card.html

Lines changed: 21 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,36 @@
1-
<div class="well">
1+
<div class="well filter-item" data-tags="{{ post.tags | join: ',' }}">
2+
23
<div class="post-content">
3-
<h3><a href="{{ post.url }}">{{ post.title }}</a></h3>
4+
<h3><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></h3>
5+
46
<p>
57
{% if post.author %}
6-
{% for author_name in post.author %}
7-
{% assign author = site.data.contributors | where: "name", author_name | first %}
8-
{% if author %}
9-
<a href="{{ author.name | replace: " ", "" | prepend: "/team/" }}">
10-
<img
11-
src="{% if author.photo %}{{ site.baseurl }}/images/team/{{ author.photo }}{% else %}{{ site.baseurl }}/images/team/defaultDP.png{% endif %}"
12-
alt="{{ author.name }}" class="author-image" />
13-
{{ author.name }}
14-
</a>
15-
{% if forloop.last == false %}, {% endif %}
16-
{% else %}
17-
<img
18-
src="{{ post.avatar }}"
19-
alt="{{ author.name }}" class="author-image" />
20-
{{ author_name | markdownify | remove: '<p>' | remove: '</p>' | strip_newlines}}
21-
{% endif %}
22-
{% endfor %}
8+
{% for author_name in post.author %}
9+
{% assign author = site.data.contributors | where: "name", author_name | first %}
10+
<span class="author-link">
11+
<img src="{% if author.photo %}{{ site.baseurl }}/images/team/{{ author.photo }}{% else %}{{ site.baseurl }}/images/team/defaultDP.png{% endif %}" class="author-image" />
12+
{{ author_name }}
13+
</span>
14+
{% endfor %}
2315
{% endif %}
24-
<span class="text-muted">
25-
• {{ post.date | date: "%b %d, %Y" }} • {{ post.content | number_of_words | divided_by: 200 | ceil }} min read
26-
</span>
16+
<span class="text-muted">• {{ post.date | date: "%b %d, %Y" }}</span>
2717
</p>
28-
<p>{{ post.excerpt | truncatewords: 50 }}</p>
2918

30-
{% if post.tags and post.tags.size > 0 %}
31-
<p>
19+
<p>{{ post.excerpt | strip_html | truncatewords: 40 }}</p>
20+
21+
<div class="post-tags" markdown="0">
3222
{% for tag in post.tags %}
33-
<a href="{{ site.baseurl }}/tags#{{ tag | downcase | slugify }}" class="badge">{{ tag }}</a>
23+
<span class="tag-badge" onclick="applyTagFilter('{{ tag }}')">#{{ tag }}</span>
3424
{% endfor %}
35-
</p>
36-
{% endif %}
37-
25+
</div>
3826
</div>
27+
3928
{% if post.banner_image %}
4029
<div class="thumbnail-container">
41-
<a href="{{ post.url }}">
42-
<img src="{{ post.banner_image }}" alt="Post Thumbnail" class="thumbnail-image" />
30+
<a href="{{ post.url | prepend: site.baseurl }}">
31+
<img src="{{ post.banner_image }}" alt="Thumbnail" class="thumbnail-image" />
4332
</a>
4433
</div>
4534
{% endif %}
46-
</div>
47-
48-
<style>
49-
.well {
50-
display: flex;
51-
align-items: center;
52-
justify-content: space-between;
53-
flex-wrap: wrap;
54-
}
5535

56-
.post-content {
57-
flex: 1;
58-
min-width: 250px;
59-
margin-bottom: 1rem;
60-
}
61-
62-
.author-image {
63-
width: 30px;
64-
height: 30px;
65-
border-radius: 50%;
66-
object-fit: cover;
67-
margin: 0;
68-
margin-top: 4px;
69-
margin-bottom: 4px;
70-
}
71-
72-
.badge {
73-
background-color: #999999;
74-
padding: 0.5rem;
75-
}
76-
77-
.thumbnail-container {
78-
margin-left: 1rem;
79-
flex-shrink: 0;
80-
min-width: 100px;
81-
}
82-
83-
.thumbnail-image {
84-
width: 200px;
85-
height: 200px;
86-
object-fit: cover;
87-
border-radius: 5px;
88-
}
89-
90-
@media (max-width: 700px) {
91-
.well {
92-
flex-direction: column-reverse;
93-
align-items: flex-start;
94-
}
95-
96-
.well > div {
97-
margin-left: 0;
98-
margin-bottom: 1rem;
99-
}
100-
101-
.well img {
102-
margin-bottom: 1rem;
103-
}
104-
105-
.thumbnail-image {
106-
width: 100%;
107-
height: auto;
108-
}
109-
}
110-
111-
</style>
36+
</div>

_includes/open-projects.html

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
21
<div class="well">
3-
<h4><b>Open Projects</b></h4>
4-
<div style="height: 300px">
5-
2+
<h4><b>Open Projects</b></h4>
3+
<div style="height: 300px">
64
{% assign top_articles = site.data.openprojectlist %}
75
{% for article in top_articles limit:4 %}
8-
<p><a href="{{ site.url }}{{ site.baseurl }}/open_projects#{{ article.name | slugify }}">{{ article.name }}</a><br /></p>
6+
<p>
7+
<a href="{{ site.baseurl }}/open_projects?tag={{ article.tags[0] }}#{{ article.name | slugify }}">
8+
{{ article.name }}
9+
</a>
10+
<br />
11+
</p>
912
{% endfor %}
10-
11-
12-
</div>
13-
<h4><a href="{{ site.url }}{{ site.baseurl }}/open_projects">... see details</a></h4>
13+
</div>
14+
<h4><a href="{{ site.url }}{{ site.baseurl }}/open_projects">... see details</a></h4>
1415
</div>

_layouts/blog.html

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
<div class="col-sm-12">
77
<h2>Latest Posts</h2>
88

9-
<div>
10-
{% for post in site.posts %} {% include blog-post-card.html %} {% endfor %}
11-
</div>
12-
</div>
9+
{% include filter_widget.html items=site.posts label="Topic" %}
10+
11+
<div class="filterable-list">
12+
{% for post in site.posts %}
13+
{% include blog-post-card.html %}
14+
{% endfor %}
15+
</div>
16+
</div>

0 commit comments

Comments
 (0)