Repository navigation
Commit eb56ba2
[Common] Experimental CuTeDSL MXFP8 backends in C++ via TVM-FFI (#3137)
* start draft
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove benchmark scripts
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* add license
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make cutlass dsl required
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix linting errors
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* warn failed compilation
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make tvm-ffi common dependency
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* use a higher version for cutlass-dsl
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* less comment
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* skip zeroing buffer if noop flag set
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* refactor activations
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* lint
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* maybe it's better to prepare tvm-ffi & cutedsl kernels in common/__init__.py
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* also flush colwise scale in SMEM
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* use explicit fp8 types
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* add checks
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* refactor
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fi
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* skip comparision test if cutedsl disabled
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* Merge pull request #3 from janekb04/cutedsl_mxfp8_common
Perform noop tensor check on device
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* add test to the qa script
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* warn only once if dlopen fails
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* let tests cover swizzling
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* warn not chosen cutedsl kernel during testing
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* improve lazyload so now the cache is uint32
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* let tests be verbose about warnings so we know if cutedsl kernel is not dispatched
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* support swizzled scale for specialized kernel but disable it
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix inline ptx
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* more fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* revert to mul
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add jax tests
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* also ignore noop when dbias
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* relax dim check for the kernels
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* reject 2D quant
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* run more tests with CuTeDSL path
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* make rowwise only handle divisible cases
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fallback to CUDA if not TMA aligned
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* specialize skip masking version
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add type annotations
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize masking
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* skip masking for some acts
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* allow user to opt out from building with CuTeDSL
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* better warning
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* doc
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add jax test coverage for cutedsl
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix device sm query
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* catch more python error
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make tvm-ffi required for python users
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* optimize dbias
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* skip scale bound check whenever possible
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* allow colwise to fuse relu too
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* dispatch to rowwise specialized with swizzled scale
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* don't link tvmffi if building a standalong C++ lib without framework
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* change some logging
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* use the right fast math flag
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* also let test script use NVTE_DEBUG
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* also let mutex cover the loading of tvm-ffi func
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* locate tvm-ffi include dir from setup_common_extension
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix how tests run with cutedsl enabled
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* reduce framework scope tests run with cutedsl backend
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* allow C++ tests to run with cutdsl
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove tvmffi and cutlass dependencies from setup.py due to being optional
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* encode sm numbers in tvm_ffi function name & cache key
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make C++ tests run in sequential
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make CuTeDSL default and cover C++ in L1
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* Improvements and fix to CuTe DSL kernel launches (#7)
* [Common] Bypass Python wrapper overhead with __tvm_ffi_object__
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Avoid heap allocations in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Avoid querying device in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Fix packed dtype handling in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* Apply review suggestions
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
---------
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix dispatching so it never uses specialized if grid won't fit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* also add tests
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* Minor fixes to CuTe DSL infrastructure (#8)
* Improvements and fix to CuTe DSL kernel launches (#7)
* [Common] Bypass Python wrapper overhead with __tvm_ffi_object__
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Avoid heap allocations in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Avoid querying device in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Fix packed dtype handling in DLTensorWrapper
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* Apply review suggestions
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
---------
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [Common] Add missing dtypes to CuTe DSL dispatch
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
* [Common] Add line information to CuTe DSL inline PTX helpers
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
---------
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* add missing ip & loc
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* refactor so we don't need #pragma to avoid collision in tests
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* whoops
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* whoops again
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* rename NVTE_ENABLE_CUTEDSL_QUANT_BACKEND to NVTE_ENABLE_CUTEDSL_BACKEND
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* switch back to NVTE_WARN_IF_CUTEDSL_BACKEND_NOT_CHOSEN
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* use TE's to_string to convert dtype to str
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove MXFP8QuantFused
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* move python init from tests to TE lib
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* software path for e8m0 conversion
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove unreachable branch
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fold quantize_mxfp8_cutedsl_config.h back to quantize_mxfp8_cutedsl.h
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit for some C++
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* rewrite dsl_user_op to cute.jit if possible and let compiler optimize
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix python init
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* prefere inline_ptx instead of llvm.inline_asm
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix activation encoding
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove unused device_is_blackwell function
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* link C++ test executable to libtvm_ffi.so
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* move cutedsl utils from math.h to a separate file
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* recover test_cast_mxfp8.cu
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* no need to init extension now
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* hoist importorskip in cutedsl python tests
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix activation_func_to_enum so it works with CUDA 12.8
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make NVTE_WITH_CUTEDSL both a env var and a cmake option
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix TE path searching for python bootstrap
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* when enabling cutedsl manually, also initialize python if it's not done before
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* use dlsym
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* let main TE lib link to Python::Module
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* add a test to cover untested manually enable cutedsl path
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* update min ver workflow
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* rename L1 CUDA C++ UT
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix build issues for CuTeDSL backend (#10)
* disable CuTeDSL support and other fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove docs that mention CuTeDSL since they are off by default now
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* remove test_cutedsl_backend.cpp
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* make envvar.rst more human
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
---------
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix python tests
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* skip L1 C++ UT with CUDA when CuTeDSL is not enabled globally
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix C++ UT python discovery
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix deadlock for multigpu
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix python init
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* fix python init again thanks to codex
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* refactor the serialized initial launch
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
* nit
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
---------
Signed-off-by: Kaining Zhong <kainingz@nvidia.com>
Signed-off-by: Jan Bielak <jbielak@nvidia.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Jan Bielak <janekb04@icloud.com>
Co-authored-by: Jan Bielak <jbielak@nvidia.com>1 parent 14f85fa commit eb56ba2
24 files changed
Lines changed: 5396 additions & 17 deletions
File tree
- .github/workflows
- build_tools/wheel_utils
- docs
- qa/L1_cppunittest_cutedsl_off
- tests
- cpp
- operator
- jax
- pytorch/mxfp8
- transformer_engine/common
- CuTeDSL
- cast
- mxfp8
- cast
- dispatch
- mxfp8
- util
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
| 68 | + | |
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | | - | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
38 | 47 | | |
39 | | - | |
| 48 | + | |
40 | 49 | | |
41 | 50 | | |
42 | 51 | | |
43 | 52 | | |
44 | 53 | | |
45 | 54 | | |
46 | 55 | | |
47 | | - | |
48 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
49 | 63 | | |
50 | 64 | | |
51 | | - | |
| 65 | + | |
52 | 66 | | |
53 | 67 | | |
54 | | - | |
| 68 | + | |
55 | 69 | | |
56 | 70 | | |
57 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
96 | 105 | | |
97 | 106 | | |
98 | 107 | | |
| |||
136 | 145 | | |
137 | 146 | | |
138 | 147 | | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
139 | 162 | | |
140 | 163 | | |
141 | 164 | | |
| |||
311 | 334 | | |
312 | 335 | | |
313 | 336 | | |
314 | | - | |
| 337 | + | |
315 | 338 | | |
316 | 339 | | |
317 | 340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
67 | 76 | | |
68 | 77 | | |
69 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
46 | 51 | | |
47 | 52 | | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
56 | | - | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
0 commit comments