|
| 1 | +--- |
| 2 | +layout: default |
| 3 | +title: Changelog |
| 4 | +nav_order: 10 |
| 5 | +permalink: /CHANGELOG |
| 6 | +--- |
| 7 | + |
1 | 8 | # Changelog |
2 | 9 |
|
3 | | -All notable changes to this project will be documented in this file. |
| 10 | +All notable changes to this project are documented here. |
4 | 11 |
|
5 | | -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
6 | | -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 12 | +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project aims to follow [Semantic Versioning](https://semver.org/). |
7 | 13 |
|
8 | 14 | ## [Unreleased] |
9 | 15 |
|
10 | 16 | ### Changed |
11 | | -- **Documentation Reorganization**: Migrated to Spec-Driven Development (SDD) structure |
12 | | - - Removed `.kiro/specs/` directory |
13 | | - - Created `/specs/` directory with standardized structure: |
14 | | - - `specs/product/` - Product requirements |
15 | | - - `specs/rfc/` - Technical design documents (RFCs) |
16 | | - - `specs/testing/` - Test specifications |
17 | | - - Migrated and translated all spec documents to English |
18 | | - - Added `AGENTS.md` for AI agent workflow instructions |
19 | | - - Updated `README.md` and `CONTRIBUTING.md` to reference new spec structure |
20 | | - |
21 | | -### Fixed |
22 | | -- **Config Bug**: Fixed duplicate `defaults` section in `_config.yml` causing Jekyll configuration conflict |
23 | | -- **Config Bug**: Removed reference to non-existent `og-image.png` in `_config.yml` |
24 | | -- **Code Comment**: Improved clarity in `getTheoreticalPeakGflops()` architecture detection comments |
25 | | - |
26 | | -### Improved |
27 | | -- **GitHub Topics**: Optimized repository topics (removed `deep-learning`, `cuda-kernel`, `nvidia-gpu`; added `cuda-kernels`, `shared-memory`, `bank-conflict`) |
28 | | -- **CI Workflow**: Added sm_89 and sm_90 architecture support in CUDA build matrix |
29 | | -- **GitHub Pages**: Added `jekyll-default-layout` plugin, improved performance table formatting |
30 | | - |
31 | | ---- |
| 17 | +- Consolidated repository governance around `openspec/specs/`, updated agent instructions, and simplified documentation roles. |
| 18 | +- Reworked README, GitHub Pages content, and supporting docs into clearer repository-entry and learning surfaces. |
| 19 | +- Began pruning redundant release-history and engineering guidance artifacts in favor of fewer authoritative files. |
32 | 20 |
|
33 | 21 | ## [2.1.0] - 2026-04-16 |
34 | 22 |
|
35 | | -### Changed |
36 | | -- **Documentation Refactor**: Complete documentation restructure |
37 | | - - Consolidated changelog entries into single `CHANGELOG.md` |
38 | | - - Rewrote `.kiro/specs/` documentation (design.md, requirements.md, tasks.md) |
39 | | - - Enhanced `index.md` GitHub Pages landing page |
40 | | - - Updated `_config.yml` for better Jekyll configuration |
41 | | -- **GitHub Workflows**: Simplified and optimized |
42 | | - - `ci.yml`: Cleaner structure, better step naming |
43 | | - - `pages.yml`: Fixed paths filter, improved concurrency group |
44 | | - |
45 | | -### Removed |
46 | | -- **Dead Code Cleanup**: Removed 514 lines of unused code across 7 source files |
47 | | - - `src/utils/cuda_utils.cuh`: Removed unused utility functions |
48 | | - - `src/utils/verify.cuh`: Removed unused verification functions |
49 | | - - `src/kernels/naive_sgemm.cuh`: Removed scaled kernel variants |
50 | | - - `src/kernels/tiled_sgemm.cuh`: Removed scaled kernel variants |
51 | | - - `src/kernels/bank_conflict_free_sgemm.cuh`: Removed transposed variant |
52 | | - - `src/kernels/double_buffer_sgemm.cuh`: Removed register tiled variant |
53 | | - - `src/kernels/tensor_core_sgemm.cuh`: Removed unused optimized kernel |
54 | | -- Deleted `changelog/` directory (consolidated into `CHANGELOG.md`) |
55 | | - |
56 | | -## [2.0.0] - 2026-03-13 |
57 | | - |
58 | | -### Fixed |
59 | | -- **Critical**: CI workflow adjusted for CPU-safe execution |
60 | | - - Removed GPU-dependent CUDA container build from GitHub Hosted Runner |
61 | | - - Restored `push`, `pull_request`, and `workflow_dispatch` triggers |
62 | | - - Unified format check using `jidicula/clang-format-action` |
63 | | - |
64 | | -### Changed |
65 | | -- CI now only performs static format checking (CPU-safe) |
66 | | -- GPU runtime tests remain local/dedicated-runner only |
67 | | - |
68 | | -## [2.0.0-rc.2] - 2026-03-10 |
69 | | - |
70 | 23 | ### Added |
71 | | -- GitHub Pages configuration with SEO metadata in `_config.yml` |
72 | | -- Professional Chinese landing page in `index.md` |
| 24 | +- Tensor Core WMMA SGEMM kernel with guarded FP32 fallback for unsupported dimensions |
| 25 | +- Benchmark enhancements, including roofline data export and configurable warmup/benchmark iterations |
| 26 | +- Google Test coverage for standard kernels, Tensor Core fast path, fallback behavior, and edge cases |
| 27 | +- Bilingual documentation and a GitHub Pages documentation site |
73 | 28 |
|
74 | 29 | ### Changed |
75 | | -- README.md: Added CI/Pages badges, timing column, ASCII roadmap |
76 | | -- pages.yml: Narrowed path triggers and sparse-checkout |
77 | | -- .gitignore: Added Jekyll-related entries |
| 30 | +- Consolidated source code into `src/kernels/`, `src/utils/`, and `tests/` |
| 31 | +- Adopted CMake as the primary build system while retaining the Makefile for quick local runs |
| 32 | +- Expanded supported CUDA architecture targets to cover Volta through Hopper generation GPUs |
78 | 33 |
|
79 | 34 | ### Fixed |
80 | | -- Workflow deep standardization: unified `permissions`, `concurrency`, path filtering |
| 35 | +- Tensor Core path memory management issues |
| 36 | +- Double-buffer synchronization issues |
| 37 | +- Grid dimension handling for non-square matrices |
81 | 38 |
|
82 | | -## [2.0.0-rc.1] - 2026-03-09 |
| 39 | +## [2.0.0] - 2026-03-13 |
83 | 40 |
|
84 | | -### Fixed |
85 | | -- **Critical Memory Leak**: Error checking macros now throw exceptions instead of `exit()` |
86 | | -- **Memory Leak**: `launch_tensor_core_sgemm` now uses RAII wrappers |
87 | | -- **Memory Leak**: `SGEMMBenchmark::run()` now uses RAII wrappers |
| 41 | +### Added |
| 42 | +- Bank-conflict-free and double-buffer SGEMM kernels |
| 43 | +- CUDA Events-based benchmark infrastructure |
| 44 | +- Nsight-oriented profiling support |
88 | 45 |
|
89 | 46 | ### Changed |
90 | | -- **Breaking**: Removed external dependency — project is now self-contained |
| 47 | +- Migrated from an earlier single-file layout to the current modular structure |
| 48 | +- Standardized on CUDA 11.0+ and C++17 |
91 | 49 |
|
92 | | -### Added |
93 | | -- `CMakeLists.txt` for modern CMake build |
94 | | -- Standardized CI workflow with `clang-format` check |
95 | | -- CUDA container-based build validation |
| 50 | +### Removed |
| 51 | +- Legacy single-file benchmark script |
| 52 | +- SM 6.x support |
96 | 53 |
|
97 | 54 | ## [1.0.0] - 2025-02-13 |
98 | 55 |
|
99 | 56 | ### Added |
100 | | -- MIT LICENSE file |
101 | | -- `.gitignore` with CUDA/Profiling/IDE rules |
102 | | -- `.editorconfig` for unified code formatting |
103 | | -- Standardized badges in README |
104 | | - |
105 | | ---- |
106 | | - |
107 | | -## Version History |
108 | | - |
109 | | -| Version | Date | Key Changes | |
110 | | -|---------|------|-------------| |
111 | | -| 2.1.0 | 2026-04-16 | Documentation refactor, dead code cleanup | |
112 | | -| 2.0.0 | 2026-03-13 | CPU-safe CI, stable release | |
113 | | -| 2.0.0-rc.2 | 2026-03-10 | GitHub Pages, documentation | |
114 | | -| 2.0.0-rc.1 | 2026-03-09 | Memory leak fixes, CMake, self-contained | |
115 | | -| 1.0.0 | 2025-02-13 | Initial project infrastructure | |
| 57 | +- Initial naive and tiled SGEMM kernels |
| 58 | +- Basic cuBLAS correctness verification |
| 59 | +- First benchmark CLI |
0 commit comments