Skip to content
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
6 changes: 5 additions & 1 deletion .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ concurrency:
jobs:
deploy:
# Only run on the original repository, not on forks
if: github.repository == 'LessUp/gpu-spmv'
if: github.repository == 'AICL-Lab/gpu-spmv'
runs-on: ubuntu-latest
environment:
name: github-pages
Expand Down Expand Up @@ -68,6 +68,10 @@ jobs:
working-directory: docs
run: npm run sync

- name: Verify docs site
working-directory: docs
run: npm run verify:site

- name: Build docs
working-directory: docs
env:
Expand Down
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This is the first stable release of GPU SpMV, featuring complete CSR and ELL for
- Doxygen-compatible documentation

#### Documentation
- Full documentation site at https://lessup.github.io/gpu-spmv/
- Full documentation site at https://aicl-lab.github.io/gpu-spmv/
- Bilingual README (English and Chinese)
- API reference, performance guide, and code examples
- Architecture documentation and design decision records
Expand Down Expand Up @@ -140,5 +140,5 @@ No breaking changes from pre-release versions. The API is now stable.

---

[1.0.0]: https://github.com/LessUp/gpu-spmv/releases/tag/v1.0.0
[0.1.0]: https://github.com/LessUp/gpu-spmv/tree/7d6dd0c
[1.0.0]: https://github.com/AICL-Lab/gpu-spmv/releases/tag/v1.0.0
[0.1.0]: https://github.com/AICL-Lab/gpu-spmv/tree/7d6dd0c
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@
</p>

<p align="center">
<a href="https://github.com/LessUp/gpu-spmv/actions/workflows/ci.yml">
<img src="https://github.com/LessUp/gpu-spmv/actions/workflows/ci.yml/badge.svg" alt="CI">
<a href="https://github.com/AICL-Lab/gpu-spmv/actions/workflows/ci.yml">
<img src="https://github.com/AICL-Lab/gpu-spmv/actions/workflows/ci.yml/badge.svg" alt="CI">
</a>
<a href="https://lessup.github.io/gpu-spmv/">
<a href="https://aicl-lab.github.io/gpu-spmv/">
<img src="https://img.shields.io/badge/Docs-GitHub%20Pages-2EA44F?logo=github" alt="Documentation">
</a>
<a href="https://github.com/LessUp/gpu-spmv/releases">
<img src="https://img.shields.io/github/v/release/LessUp/gpu-spmv?color=blue" alt="Release">
<a href="https://github.com/AICL-Lab/gpu-spmv/releases">
<img src="https://img.shields.io/github/v/release/AICL-Lab/gpu-spmv?color=blue" alt="Release">
</a>
<a href="https://github.com/LessUp/gpu-spmv/blob/main/LICENSE">
<a href="https://github.com/AICL-Lab/gpu-spmv/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-green" alt="License">
</a>
</p>
Expand Down Expand Up @@ -105,7 +105,7 @@ if (result.error != SpMVError::SUCCESS) {

```bash
# 1. Clone
git clone https://github.com/LessUp/gpu-spmv.git && cd gpu-spmv
git clone https://github.com/AICL-Lab/gpu-spmv.git && cd gpu-spmv

# 2. Build
cmake --preset release && cmake --build --preset release
Expand Down Expand Up @@ -143,7 +143,7 @@ int main() {
}
```

📚 **More examples**: [Documentation Site](https://lessup.github.io/gpu-spmv/examples)
📚 **More examples**: [Documentation Site](https://aicl-lab.github.io/gpu-spmv/en/examples/basic-spmv)

---

Expand All @@ -167,7 +167,7 @@ Benchmark on **NVIDIA RTX 3090** (Ampere, 936 GB/s peak):
# Avg time: 23.5 ms | Bandwidth: 69.8 GB/s (71.5% of peak)
```

📈 **Full performance guide**: [Performance Optimization](https://lessup.github.io/gpu-spmv/performance)
📈 **Full performance guide**: [Performance Optimization](https://aicl-lab.github.io/gpu-spmv/en/performance/optimization-guide)

---

Expand All @@ -194,16 +194,16 @@ gpu-spmv/

## 📚 Documentation

Complete documentation is available at **[https://lessup.github.io/gpu-spmv/](https://lessup.github.io/gpu-spmv/)**:
Complete documentation is available at **[https://aicl-lab.github.io/gpu-spmv/](https://aicl-lab.github.io/gpu-spmv/)**:

| Document | Description |
|:---------|:------------|
| [📦 Installation Guide](https://lessup.github.io/gpu-spmv/installation) | System requirements, detailed installation |
| [📚 API Reference](https://lessup.github.io/gpu-spmv/api) | Complete API documentation, data structures |
| [📝 Examples](https://lessup.github.io/gpu-spmv/examples) | 7 complete code examples (basic → advanced) |
| [🚀 Performance Guide](https://lessup.github.io/gpu-spmv/performance) | Tuning strategies, benchmark data |
| [🏗️ Architecture](https://lessup.github.io/gpu-spmv/architecture) | System design, kernel selection |
| [📋 Changelog](https://lessup.github.io/gpu-spmv/changelog) | Version history, migration guide |
| [📦 Installation Guide](https://aicl-lab.github.io/gpu-spmv/en/quickstart) | System requirements, detailed installation |
| [📚 API Reference](https://aicl-lab.github.io/gpu-spmv/en/api/spmv) | Complete API documentation, data structures |
| [📝 Examples](https://aicl-lab.github.io/gpu-spmv/en/examples/basic-spmv) | End-to-end code example and walkthrough |
| [🚀 Performance Guide](https://aicl-lab.github.io/gpu-spmv/en/performance/optimization-guide) | Tuning strategies, benchmark data |
| [🏗️ Architecture](https://aicl-lab.github.io/gpu-spmv/en/architecture/overview) | System design, kernel selection |
| [📋 Changelog](https://aicl-lab.github.io/gpu-spmv/en/changelog) | Version history, migration guide |

---

Expand Down
31 changes: 20 additions & 11 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ export default withMermaid(
content: 'High-Performance CUDA Sparse Matrix-Vector Multiplication Library'
}
],
['meta', { property: 'og:image', content: `${base}images/og-image.svg` }],
['meta', { property: 'og:image', content: `${base}images/social/og-dark.svg` }],
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
['meta', { name: 'twitter:title', content: 'GPU SpMV' }],
['meta', { name: 'twitter:description', content: 'High-Performance CUDA Sparse Matrix-Vector Multiplication Library' }],
['meta', { name: 'twitter:image', content: `${base}images/og-image.svg` }],
['meta', { name: 'twitter:image', content: `${base}images/social/og-dark.svg` }],
['link', { rel: 'icon', href: `${base}images/favicon.svg`, type: 'image/svg+xml' }],
['link', { rel: 'preconnect', href: 'https://fonts.googleapis.com' }],
['link', { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' }],
Expand Down Expand Up @@ -59,10 +59,10 @@ export default withMermaid(
themeConfig: {
nav: [
{ text: '技术白皮书', link: '/zh/whitepaper/', activeMatch: '/zh/whitepaper/' },
{ text: '快速开始', link: '/zh/quickstart', activeMatch: '/zh/(quickstart|examples)/' },
{ text: '架构设计', link: '/zh/architecture/overview', activeMatch: '/zh/architecture/' },
{ text: '性能测试', link: '/zh/performance/benchmarks', activeMatch: '/zh/performance/' },
{ text: 'API 参考', link: '/zh/api/spmv', activeMatch: '/zh/api/' },
{ text: '性能测试', link: '/zh/performance/benchmarks', activeMatch: '/zh/performance/' }
{ text: '学术引用', link: '/zh/references', activeMatch: '/zh/(references|citation)/' }
],
sidebar: {
'/zh/': [
Expand All @@ -88,15 +88,18 @@ export default withMermaid(
collapsed: false,
items: [
{ text: '系统概览', link: '/zh/architecture/overview' },
{ text: '执行流水线', link: '/zh/architecture/execution-pipeline' },
{ text: 'Kernel 选择策略', link: '/zh/architecture/kernel-selection' },
{ text: '内存布局', link: '/zh/architecture/memory-layout' },
{ text: '可靠性约束', link: '/zh/architecture/reliability' },
{ text: 'Spec-Driven 开发', link: '/zh/architecture/spec-driven' }
]
},
{
text: '性能优化',
collapsed: false,
items: [
{ text: '性能方法学', link: '/zh/performance/methodology' },
{ text: '基准测试', link: '/zh/performance/benchmarks' },
{ text: '优化指南', link: '/zh/performance/optimization-guide' }
]
Expand Down Expand Up @@ -124,7 +127,7 @@ export default withMermaid(
]
},
editLink: {
pattern: 'https://github.com/LessUp/gpu-spmv/edit/main/docs/:path',
pattern: 'https://github.com/AICL-Lab/gpu-spmv/edit/main/docs/:path',
text: '在 GitHub 上编辑此页'
},
docFooter: { prev: '上一页', next: '下一页' },
Expand All @@ -145,10 +148,10 @@ export default withMermaid(
themeConfig: {
nav: [
{ text: 'Whitepaper', link: '/en/whitepaper/', activeMatch: '/en/whitepaper/' },
{ text: 'Getting Started', link: '/en/quickstart', activeMatch: '/en/(quickstart|examples)/' },
{ text: 'Architecture', link: '/en/architecture/overview', activeMatch: '/en/architecture/' },
{ text: 'Benchmarks', link: '/en/performance/benchmarks', activeMatch: '/en/performance/' },
{ text: 'API Reference', link: '/en/api/spmv', activeMatch: '/en/api/' },
{ text: 'Benchmarks', link: '/en/performance/benchmarks', activeMatch: '/en/performance/' }
{ text: 'References', link: '/en/references', activeMatch: '/en/(references|citation)/' }
],
sidebar: {
'/en/': [
Expand All @@ -174,15 +177,18 @@ export default withMermaid(
collapsed: false,
items: [
{ text: 'System Overview', link: '/en/architecture/overview' },
{ text: 'Execution Pipeline', link: '/en/architecture/execution-pipeline' },
{ text: 'Kernel Selection', link: '/en/architecture/kernel-selection' },
{ text: 'Memory Layout', link: '/en/architecture/memory-layout' },
{ text: 'Reliability Constraints', link: '/en/architecture/reliability' },
{ text: 'Spec-Driven Dev', link: '/en/architecture/spec-driven' }
]
},
{
text: 'Performance',
collapsed: false,
items: [
{ text: 'Methodology', link: '/en/performance/methodology' },
{ text: 'Benchmarks', link: '/en/performance/benchmarks' },
{ text: 'Optimization Guide', link: '/en/performance/optimization-guide' }
]
Expand Down Expand Up @@ -210,7 +216,7 @@ export default withMermaid(
]
},
editLink: {
pattern: 'https://github.com/LessUp/gpu-spmv/edit/main/docs/:path',
pattern: 'https://github.com/AICL-Lab/gpu-spmv/edit/main/docs/:path',
text: 'Edit this page on GitHub'
},
outline: { label: 'On This Page', level: [2, 3] }
Expand All @@ -219,15 +225,18 @@ export default withMermaid(
},

themeConfig: {
logo: '/images/logo.svg',
logo: {
light: '/images/brand/logo-mark-light.svg',
dark: '/images/brand/logo-mark-dark.svg'
},
siteTitle: 'GPU SpMV',
socialLinks: [
{ icon: 'github', link: 'https://github.com/LessUp/gpu-spmv' }
{ icon: 'github', link: 'https://github.com/AICL-Lab/gpu-spmv' }
],
search: { provider: 'local' },
footer: {
message: 'MIT License',
copyright: '© 2024-2026 LessUp'
copyright: '© 2024-2026 AICL-Lab'
},
outline: [2, 3]
},
Expand Down
20 changes: 20 additions & 0 deletions docs/.vitepress/data/benchmarks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
export const benchmarkData = {
environment: [
{ label: 'GPU', value: 'RTX 3090' },
{ label: 'Peak BW', value: '936 GB/s' },
{ label: 'CUDA', value: '12.0' },
{ label: 'CPU', value: 'Ryzen 9 5950X' }
],
summary: [
{ label: 'Typical Utilization', value: '70%+' },
{ label: 'Best Kernel Family', value: 'Merge Path' },
{ label: 'Best Regular Pattern', value: 'ELL' },
{ label: 'Selector Accuracy', value: '100%' }
],
scenarios: [
{ label: 'Very sparse', value: 'Scalar CSR', description: 'avg_nnz_per_row < 4' },
{ label: 'Uniform rows', value: 'Vector CSR', description: 'Low skewness, good warp utilization' },
{ label: 'High skew', value: 'Merge Path', description: 'Irregular row lengths with better balancing' },
{ label: 'ELL-friendly', value: 'ELL Kernel', description: 'Uniform row width, coalesced memory access' }
]
}
48 changes: 48 additions & 0 deletions docs/.vitepress/data/references.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
export const references = {
papers: [
{
key: 'bell-garland-2009',
title: 'Implementing Sparse Matrix-Vector Multiplication on Throughput-Oriented Processors',
meta: 'Nathan Bell, Michael Garland · SC 2009',
url: 'https://doi.org/10.1145/1654059.1654121'
},
{
key: 'merrill-garland-2016',
title: 'Merge-based Parallel Sparse Matrix-Vector Multiplication',
meta: 'Duane Merrill, Michael Garland · SC 2016',
url: 'https://doi.org/10.1145/3016078.2851141'
},
{
key: 'vazquez-ellrt-2011',
title: 'Automatic Tuning of the Sparse Matrix Vector Product on GPUs Based on the ELL-R-T Format',
meta: 'Fernando Vázquez et al. · Concurrency and Computation 2011',
url: 'https://doi.org/10.1002/cpe.1761'
}
],
projects: [
{
key: 'cusparse',
title: 'NVIDIA cuSPARSE',
meta: 'Vendor baseline and API reference for sparse GPU primitives',
url: 'https://developer.nvidia.com/cusparse'
},
{
key: 'ginkgo',
title: 'Ginkgo',
meta: 'Production-quality sparse linear algebra library with strong docs',
url: 'https://github.com/ginkgo-project/ginkgo'
},
{
key: 'moderngpu',
title: 'ModernGPU',
meta: 'Useful for understanding scan / merge / partitioning techniques on GPU',
url: 'https://github.com/moderngpu/moderngpu'
},
{
key: 'suitesparse',
title: 'SuiteSparse Matrix Collection',
meta: 'Representative real-world sparse matrices for benchmark reasoning',
url: 'https://github.com/DrTimothyAldenDavis/SuiteSparse'
}
]
}
29 changes: 29 additions & 0 deletions docs/.vitepress/data/site.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
export type SiteMetric = {
label: string
value: string
description?: string
}

export const siteData = {
repo: 'https://github.com/AICL-Lab/gpu-spmv',
zh: {
heroTitle: 'GPU SpMV:技术白皮书与架构展示站',
heroLead: '把 CUDA 稀疏矩阵向量乘法项目打造成可读、可证、可展示的工程作品。',
metrics: [
{ label: 'Bandwidth Utilization', value: '70%+' },
{ label: 'Adaptive Kernels', value: '4' },
{ label: 'Sparse Formats', value: 'CSR + ELL' },
{ label: 'Property Tests', value: '100+' }
] satisfies SiteMetric[]
},
en: {
heroTitle: 'GPU SpMV: Technical Whitepaper and Architecture Showcase',
heroLead: 'Present the CUDA sparse matrix-vector multiplication project as a serious engineering artifact.',
metrics: [
{ label: 'Bandwidth Utilization', value: '70%+' },
{ label: 'Adaptive Kernels', value: '4' },
{ label: 'Sparse Formats', value: 'CSR + ELL' },
{ label: 'Property Tests', value: '100+' }
] satisfies SiteMetric[]
}
}
13 changes: 13 additions & 0 deletions docs/.vitepress/theme/Layout.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<script setup lang="ts">
import DefaultTheme from 'vitepress/theme'

const { Layout } = DefaultTheme
</script>

<template>
<Layout>
<template #layout-top>
<div class="spmv-layout-top" aria-hidden="true"></div>
</template>
</Layout>
</template>
Loading
Loading