Skip to content

Commit

Permalink
contrib : add TODO for precompiler directives [no ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
ggerganov committed Jan 11, 2025
1 parent 31a4409 commit dab577a
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,19 @@
- Vertical alignment makes things more readable and easier to batch edit
- Clean-up any trailing whitespaces, use 4 spaces for indentation, brackets on the same line, `void * ptr`, `int & a`
- Use sized integer types in the public API
- Declare structs with `struct x {}` instead of `typedef struct x {} x`
- Declare structs with `struct foo {}` instead of `typedef struct foo {} foo`
- In C++ code omit the `struct` keyword whenever it is not necessary
> [!NOTE]
> This guideline is yet to be applied to the `llama.cpp` codebase. New code should follow this guideline.
- Try to follow the existing patterns in the code (indentation, spaces, etc.). In case of doubt use `clang-format` to format the added code
- Tensors store data in row-major order. We refer to dimension 0 as columns, 1 as rows, 2 as matrices
- Matrix multiplication is unconventional: [`C = ggml_mul_mat(ctx, A, B)`](https://github.com/ggerganov/llama.cpp/blob/880e352277fc017df4d5794f0c21c44e1eae2b84/ggml.h#L1058-L1064) means $C^T = A B^T \Leftrightarrow C = B A^T.$
- Try to follow the existing patterns in the code (indentation, spaces, etc.). In case of doubt use `clang-format` to format the added code

![matmul](media/matmul.png)

- Precompiler directives
- (TODO: specify a common style with examples and apply it to the codebase)

# Naming guidelines

- Use `snake_case` for function, variable and type names
Expand Down

0 comments on commit dab577a

Please sign in to comment.