Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

46 lines
2.0 KiB
Markdown

# # AI Rules for rocRoller
This file provides guidance to AI agents when working with code in this repository.
## Overview
RocRoller is a software library for generating optimized AMDGPU assembly kernels.
It transforms high-level kernel specifications (`Command`) through a dual-graph IR (`KernelGraph` with `ControlGraph` + `CoordinateGraph`) into optimized GPU assembly, then assembles to binary via AMD Comgr and executes via HIP.
## Conventions
- **Default layout is column-major.** N (non-transposed) = column-major, T (transposed) = row-major.
## Git Workflow
- **Main branch**: `develop` (use for PRs, not `main` or `master`)
- **Branch naming**: `users/<username>/<feature-name>`
## File Structure Conventions
- `Foo.hpp`: Class/concept definitions with declaration-only functions
- `Foo_impl.hpp`: Short inlinable function definitions (included at bottom of `Foo.hpp`)
- `Foo_fwd.hpp`: Forward declarations, type aliases (e.g., `FooPtr = std::shared_ptr<Foo>`), minimal includes
- `Foo.cpp`: Longer function definitions
## Coding Style
- **Formatting**: Follows `clang-format` version 13 (`./scripts/fix-format`)
- **Functions**: Static/free functions start with uppercase; instance functions start with lowercase
- **Variables**: Private members start with `m_`; public members do not
- **Naming**: camelCase (not snake_case)
- **Macros/CMake**: `UPPER_CASE` with `ROCROLLER_` prefix
- **C++ Standard**: C++20 is available but prefer C++17 modern practices unless explicitly reviewed
- **Memory**: Use `std::make_unique`/`std::make_shared` instead of `new`; use `std::vector` for arrays
- **Type aliases**: Use `using` instead of `typedef`
### Adding New Tests
- **Preferred**: Add Catch2 tests in `test/catch/` → builds `rocroller-tests-catch`
- **Legacy**: GTest tests in `test/unit/` → builds `rocroller-tests`
### Debugging and Error Handling
- Use `Log::debug()` etc. from `Utilities/Logging.hpp` for debug output.
- Prefer `AssertFatal` with `ShowValue()` over `assert`.