Skip to content

Commit

Permalink
Merge pull request #1002 from LuxDL/ap/mono_repo
Browse files Browse the repository at this point in the history
* perf: cleanup the benchmarking script

* perf: add benchmarks for Zygote

* perf: try reclaiming memory

* fix: incorrect system parameters

* perf: temporarily disable non-dense benchmarks

[skip tests]

* ci(benchmark): allow proceed on failure

[skip tests]

* perf: update polyalg selection for matmul and matmuladd

* test: ensure no additional allocations for matmul

* fix: typo in AMDGPU batched matmul

* perf: restore running all benchmarks

* docs: add link to benchmarks

* ci: fix benchmarks config

* test: run allocs test only on CPU

* fix: mixed-precision use Octavian if possible

* feat: add traits to fuse activation functions

[skip ci]

* perf: selective vectorization of operations bias_add/activation

* perf: fused bias activation for certain operations

* perf: optimize batchnorm implementation

* perf: don't fuse tanh

* perf: run specific benchmarks

* perf: be conservative while fusing activation functions

* refactor: qualify CPU functions with `_cpu`

* perf: restore running all benchmarks

* fix(tracker): expand custom Tracker AD for wrapper types

* fix: subtyping correction

* test: ignore tests for batched_vec (not our code)

* perf: faster version of groupnorm

* ci: run downstream testing only on pull requests

* refactor: remove unnecessary forced inlining

* refactor: move PartialFunctions into a module

* refactor: move utilities into Utils

* refactor: move device agnostic functions to `DeviceAgnostic`

* test: separate out the testing project file

* refactor: move internal functions into separate modules

* test: separate out the testing project file

* fix: incorrect internal calls

* refactor: remove unnecessary turbo loop

* perf: don't rely on compile time branch removal for KA

* perf: static ndrange kernel launches

* perf: let it autotune

* refactor: use multiple dispatch for cleaner kernels

* refactor: disable cpu codegen for kernels

* fix: nicer information for fallback mixed-precision matmul

* fix: allow zero-sized arrays in bias_activation

* fix: don't restrict bias_act to number

* fix: don't restrict traits/ext/utils to number

* fix: more aggressive type specialization

* chore: update version

* fix: broken qa tests

* fix: use `fmap_with_path` to correctly identify all internal states

* chore: apply formatting suggestion

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: don't error on detecting arrays with undefined entries

* refactor: move ChainRulesCore into an extension

* fix: skip enzyme tests if it is a pre-release

* chore: bump version for release

* fix: decide internal operation based on unwrapped arrays

* fix: avoid wrappers for SVector using `insert_batch_dim`

* fix: enzyme forward mode with octavian

* feat: swap Enzyme forward rules along with reverse

* test: simple enzyme forward test to check no crash

* chore: bump crate-ci/typos from 1.23.6 to 1.24.1

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.6 to 1.24.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.23.6...v1.24.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump crate-ci/typos from 1.23.6 to 1.24.1

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.6 to 1.24.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.23.6...v1.24.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.23.6 to 1.24.1

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.6 to 1.24.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.23.6...v1.24.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.23.6 to 1.24.1

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.6 to 1.24.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.23.6...v1.24.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.23.6 to 1.24.1

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.6 to 1.24.1.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.23.6...v1.24.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: add `unsafe_free!`

* feat: add DeviceIterator (and support parallel Device DataLoader)

* test: basic tests for free-ing data

* refactor: simplify parallel dataloader

* test: DataLoader aggressive freeing

* docs: add docstrings for `DeviceIterator`

* refactor: deprecate "Explicit" in favor of "Lux"

* chore: add deprecation for the single arg outputsize

* fix: remove old uses of Explicit

* fix!: remove deprecations

* chore: add exports for abstract layers

* refactor: move Functors and Setfield into ext

* fix!: remove hacky version of outputsize

* feat: add `AbstractLuxWrapperLayer`

* refactor: cleanup extension usage

* test: update test to new API

* test: extension loading errors

* feat: support functors for WrappedLayer

* test: LuxWrappedLayer tested

* test: don't qualify unnecessarily

* refactor: cleanup internal functions

* fix!: remove default slow handling of outputsize

* fix: update removed API

* test: update old tests

* fix!: remove unused `inputsize`

* fix: add fmap_with_path support

* chore: fix formatting

* feat: default call for wrapper layers

* fix: remove hacky usage of module getproperty rrules

* fix: accidental dual usage of `ofeltype_array`

* feat: auto-training mode and strict checks

* chore: bump compat for LuxCore to 1, (keep existing compat) (#147)

Co-authored-by: CompatHelper Julia <[email protected]>

* feat: extend the layernorm API

* test: more detailed layernorm testing

* chore: bump version for release

* fix!: remove deprecations for 1.0 release

* chore!: remove Reexport of NNlib (will be done via Lux)

* perf: add NNlib to benchmarks deps

* fix: remove unused explicit imports

* chore: update to using [email protected]

* fix!: remove dropout branching based on size

* fix!: change the default layernorm dims

* chore: bump crate-ci/typos from 1.24.1 to 1.24.3

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.1 to 1.24.3.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.1...v1.24.3)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump crate-ci/typos from 1.24.1 to 1.24.3

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.1 to 1.24.3.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.1...v1.24.3)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.1 to 1.24.3

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.1 to 1.24.3.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.1...v1.24.3)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.1 to 1.24.3

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.1 to 1.24.3.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.1...v1.24.3)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.1 to 1.24.3

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.1 to 1.24.3.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.1...v1.24.3)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: add enzyme reverse rules for `fused_dense!`

* test: add tests for the enzyme fused_dense rules

* fix: typo in reverse rule

* test: run tests with more activations

* feat: instancenorm with running statistics

* fix: fixes for testing

* fix: modify the dropout testing

* fix: windows testing for dropout

* chore(deps): bump crate-ci/typos from 1.24.3 to 1.24.5

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.3 to 1.24.5.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.3...v1.24.5)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump peter-evans/create-pull-request from 6 to 7

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump peter-evans/create-pull-request from 6 to 7

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.3 to 1.24.5

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.3 to 1.24.5.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.3...v1.24.5)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump peter-evans/create-pull-request from 6 to 7

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.3 to 1.24.5

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.3 to 1.24.5.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.3...v1.24.5)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump peter-evans/create-pull-request from 6 to 7 (#19)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump peter-evans/create-pull-request from 6 to 7

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.3 to 1.24.5

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.3 to 1.24.5.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.3...v1.24.5)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* test: add tests comparing the fused op with unfused op

* fix: improve load times by moving CRC to ext

* fix: remove UnrolledUtilities dep

* fix: remove UnrolledUtilities dep

* chore: bump minimum MLDataDevices version

* fix: dropout tests are no longer broken

* chore: accidentally left deprecations file

* fix: missing enzyme rules for matmuladd! (CUDA support)

* test: incorrect condition

* test: incorrect function name

* fix: zero out shadows

* fix: enzyme reverse bias needs a check on Const

* chore: bump crate-ci/typos from 1.24.5 to 1.24.6

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.5 to 1.24.6.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.5...v1.24.6)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* feat: better test integration in test_gradients

* feat: add test_gradients macro

* chore: apply formatting suggestion

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix: update to use test_gradients macro

* fix: bias needs to add accum gradients

* chore: bump `EnzymeCore` version

* CompatHelper: bump compat for EnzymeCore in [weakdeps] to 0.8, (keep existing compat)

* chore: bump version for release

---------

Co-authored-by: CompatHelper Julia <[email protected]>
Co-authored-by: Avik Pal <[email protected]>

* chore: install latest enzyme version

* chore: update Enzyme version

* chore: bump minimum versions

* ci: update buildkite settings

* feat: wider support for batched_matmul

* perf: benchmark fallback batched_matmul

* feat: slow fallback conv impl

* feat: parallel fallback batchedmm

* ci(buildkite): add GPU testing for Metal and oneAPI

* test: check for FP64 support

* fix: convert element type before broadcasting

* fix: dispatch for NNlib conv

* ci(buildkite): disable testing for Metal and oneAPI

* chore: bump version

* feat: update minimum version of Enzyme to 0.13

* feat: support within_gradient for Enzyme

* refactor: rename within_gradient to within_autodiff

* fix: update forward rules to new API

* fix: use known on the return type

* fix: forward enzyme rules

* fix: broken enzyme tests

* feat: support runtime activity for enzyme

* fix: check was accidentally broken

* chore(deps): bump crate-ci/typos from 1.24.5 to 1.24.6

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.5 to 1.24.6.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.5...v1.24.6)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.3 to 1.24.6

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.3 to 1.24.6.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.3...v1.24.6)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.5 to 1.24.6

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.5 to 1.24.6.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.5...v1.24.6)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.5 to 1.24.6

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.5 to 1.24.6.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.5...v1.24.6)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix: rollback custom gelu implementation

* feat: XLADevice via Reactant

* chore: apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* chore: bump version

* feat: more extensive testing of XLA backend

* fix: incorrect function call

* test: rename

* test: incorrect env var

* fix: copy to XLA in main thread

* fix: don't support pre-moving the data

* fix: urgent patch for reactant breakage

* chore: bump crate-ci/typos from 1.24.6 to 1.25.0

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to 1.25.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.6...v1.25.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(deps): bump crate-ci/typos from 1.24.6 to 1.25.0 (#41)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to 1.25.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.6...v1.25.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump crate-ci/typos from 1.24.6 to 1.25.0

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to 1.25.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.6...v1.25.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.6 to 1.25.0

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to 1.25.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.6...v1.25.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore: bump crate-ci/typos from 1.24.6 to 1.26.0

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to 1.26.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.24.6...v1.26.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* ci: run on `1.10` and `1` (#57)

* ci: run on `1.10` and `1`

* ci: run on `1.10` and `1`

* ci: run on `1.10` and `1` (#81)

* ci: run on 1.10 and 1

* ci: run on `1.10` and `1`

* ci: run on `1.10` and `1`

* ci: run on `1.10` and `1` (#43)

* ci: run on `1.10` and `1`

* ci: run on `1.10` and `1`

* test: mark truncated normal on Metal as unbroken

* ci: run buildkite on `1.10` and `1`

* chore: bump peter-evans/create-pull-request from 6 to 7 (#40)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci: run tests only on `1.10` for now (#172)

* fix: relax cublaslt types (#173)

* docs: add Flux.jl to the README (#83)

After FluxML/Flux.jl#2492 also Flux relies on MLDataDevices.

* chore: bump crate-ci/typos from 1.25.0 to 1.26.0 (#58)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.25.0 to 1.26.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.25.0...v1.26.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump crate-ci/typos from 1.25.0 to 1.26.0 (#44)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.25.0 to 1.26.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.25.0...v1.26.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump crate-ci/typos from 1.25.0 to 1.26.0 (#174)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.25.0 to 1.26.0.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.25.0...v1.26.0)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump compat for GPUArrays in [weakdeps] to 11, (keep existing compat) (#86)

Co-authored-by: CompatHelper Julia <[email protected]>

* chore: bump version for release

* chore: bump compat for GPUArrays in [weakdeps] to 11, (keep existing compat) (#46)

Co-authored-by: CompatHelper Julia <[email protected]>

* chore: bump compat for GPUArraysCore to 0.2, (keep existing compat) (#47)

Co-authored-by: CompatHelper Julia <[email protected]>
Co-authored-by: Avik Pal <[email protected]>

* chore: bump version for release

* feat: add fallbacks for unknown objects (#87)

* feat: add fallbacks for unknown objects

* feat: handle RNGs and undef arrays gracefully

* test: RNG movement

* test: functions and closures

* refactor: move `JuliaSIMD` deps to extensions (#175)

* fix: remove LV.vmap! usage

* fix: remove LV handling for bias_activation

* fix: remove LV usage in dropout

* refactor: move LV and octavian behind an extension

* docs: add docs for loading packages

* refactor: move SLEEFPirates to an ext

* fix: enzyme rules for batched matmul

* fix: patch more enzyme issues

* feat: add a preference to disable loop vectorization

* fix: incorrect dispatch called

* fix: enzyme segfault bypass

* feat: define isleaf (#84)

* isleaf

* exclude

* add tests and docs

* more tests

* import functors

* fix test

* chore: reduce min compat

* chore: run formatter

* chore: bump version for release

* fix: handle bitstypes and wrapped arrays in isleaf (#88)

* bitstype and wrapped arrays

* fixes

* fix import

* bound

* cleanup

* chore: fix min version of LinearAlgebra

* chore: run formatter

---------

Co-authored-by: Avik Pal <[email protected]>
Co-authored-by: Avik Pal <[email protected]>

* fix: task switching in AMDGPU complex batched_matmul (#178)

* ci(buildkite): add downstream testing for NeuralOperators

* perf: restore old batched_mul

* fix: disable threading for certain devices

* revert: "perf: restore old batched_mul"

This reverts commit a8c0f3b4615f96a8773577e16fac61ba310d8123.

* fix: correctly handle adjoints of wrapped arrays (#90)

* fix: correctly handle adjoints of wrapped arrays

* fix: use fast paths for adapt

* fix: adapt ranges to JuliaGPU/Adapt.jl#86

* chore(deps): bump crate-ci/typos from 1.25.0 to 1.26.8 (#44)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.25.0 to 1.26.8.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.25.0...v1.26.8)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump crate-ci/typos from 1.26.0 to 1.26.8 (#49)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.26.0 to 1.26.8.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.26.0...v1.26.8)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: bump crate-ci/typos from 1.26.0 to 1.26.8 (#60)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.26.0 to 1.26.8.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.26.0...v1.26.8)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: missing import; fixes #179 (#180)

* chore: bump crate-ci/typos from 1.26.0 to 1.26.8 (#93)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.26.0 to 1.26.8.
- [Release notes](https://github.com/crate-ci/typos/releases)
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md)
- [Commits](crate-ci/typos@v1.26.0...v1.26.8)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci: merge LuxCUDA testing scripts

* ci: merge LuxCore testing scripts

* ci: merge WeightInitializers testing scripts

* ci: add WI to pipeline launch

* ci: add MLDataDevices to pipeline launch

* ci: change 1.10 to "lts"

* test: LuxCore test fixes

* ci: soft fail MLDataDevices

* ci: add a central downstream testing

* ci: partially migrate LuxLib CI

* ci: remove name field

* ci: minor fixes to build scripts

* ci: move LuxTestUtils CI scripts

* ci: update LuxLib workflow

* ci: update LuxLib workflows

* ci: split out downstream testing

* ci: fix certain pipelines

* ci: minor tweaks

* fix: workflows

* test: use local LuxCUDA for tests

* fix: use develop

* docs: update

* fix: add dev packages

* docs: dev required packages

* perf: merge the benchmarks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: CompatHelper Julia <[email protected]>
Co-authored-by: Christopher Rackauckas <[email protected]>
Co-authored-by: Carlo Lucibello <[email protected]>
  • Loading branch information
6 people authored Nov 3, 2024
2 parents 699c8d8 + a3308c8 commit 0f874c5
Show file tree
Hide file tree
Showing 171 changed files with 14,778 additions and 191 deletions.
16 changes: 12 additions & 4 deletions .buildkite/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,11 @@ steps:
command: |
julia --project=benchmarks -e 'println("--- :julia: Instantiating project")
using Pkg
Pkg.develop([PackageSpec(path=pwd())])'
Pkg.develop([
PackageSpec(path=pwd()),
PackageSpec(path="lib/LuxLib"),
PackageSpec(path="lib/MLDataDevices"),
])'
julia --project=benchmarks -e 'println("--- :julia: Run Benchmarks")
include("benchmarks/runbenchmarks.jl")'
Expand All @@ -36,12 +40,16 @@ steps:
version: "1"
command: |
julia --project=benchmarks -e 'println("--- :julia: Instantiating project")
using Pkg
Pkg.develop([PackageSpec(path=pwd())])'
using Pkg;
Pkg.develop([
PackageSpec(path=pwd()),
PackageSpec(path="lib/LuxLib"),
PackageSpec(path="lib/MLDataDevices"),
])'
julia --project=benchmarks -e 'println("--- :julia: Add CUDA to benchmarks environment")
using Pkg
Pkg.add("LuxCUDA")'
Pkg.develop([PackageSpec(path="lib/LuxCUDA")])'
julia --project=benchmarks -e 'println("--- :julia: Run Benchmarks")
include("benchmarks/runbenchmarks.jl")'
Expand Down
6 changes: 5 additions & 1 deletion .buildkite/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,11 @@ steps:
julia --code-coverage=user --color=yes --project=docs -e '
println("--- :julia: Instantiating project")
using Pkg
Pkg.develop(PackageSpec(path=pwd()))
dev_pkgs = Pkg.PackageSpec[]
for pkg in ("lib/LuxLib", "lib/LuxCore", "lib/MLDataDevices", "lib/LuxTestUtils", "lib/WeightInitializers", ".")
push!(dev_pkgs, Pkg.PackageSpec(path=pkg));
end
Pkg.develop(dev_pkgs)
Pkg.instantiate()
println("+++ :julia: Building documentation")
include("docs/make.jl")'
Expand Down
68 changes: 68 additions & 0 deletions .buildkite/downstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
steps:
- group: ":telescope: Downstream CUDA"
steps:
- label: ":julia: {{matrix.repo}} (Julia 1 + CUDA GPU)"
plugins:
- JuliaCI/julia#v1:
version: "1.10"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
- lib/LuxCore/src
- lib/LuxCore/ext
- lib/LuxLib/src
- lib/LuxLib/ext
- lib/MLDataDevices/src
- lib/MLDataDevices/ext
- lib/WeightInitializers/src
- lib/WeightInitializers/ext
command: julia --code-coverage=user --color=yes --project .buildkite/scripts/downstream.jl "{{matrix.repo}}" "CUDA"
agents:
queue: "juliagpu"
cuda: "*"
if: build.message !~ /\[skip tests\]/ && build.message !~ /\[skip downstream\]/ && build.message !~ /\[skip ci\]/ && build.pull_request.labels includes "run downstream test"
timeout_in_minutes: 60
matrix:
setup:
repo:
- "Boltz"
- "NeuralPDE"
- "DeepEquilibriumNetworks"
- "NeuralOperators"

- group: ":telescope: Downstream AMD GPU"
steps:
- label: ":julia: {{matrix.repo}} (Julia 1 + AMD GPU)"
plugins:
- JuliaCI/julia#v1:
version: "1.10"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
- lib/LuxCore/src
- lib/LuxCore/ext
- lib/LuxLib/src
- lib/LuxLib/ext
- lib/MLDataDevices/src
- lib/MLDataDevices/ext
- lib/WeightInitializers/src
- lib/WeightInitializers/ext
command: julia --code-coverage=user --color=yes --project .buildkite/scripts/downstream.jl "{{matrix.repo}}" "AMDGPU"
agents:
queue: "juliagpu"
rocm: "*"
rocmgpu: "*"
if: build.message !~ /\[skip tests\]/ && build.message !~ /\[skip downstream\]/ && build.message !~ /\[skip ci\]/ && build.pull_request.labels includes "run downstream test"
timeout_in_minutes: 60
matrix:
setup:
repo:
- "Boltz"
- "NeuralOperators"

env:
SECRET_CODECOV_TOKEN: "jQ0BMTQgyZx7QGyU0Q2Ec7qB9mtE2q/tDu0FsfxvEG7/zOAGvXkyXrzIFFOQxvDoFcP+K2+hYZKMxicYdNqzr5wcxu505aNGN2GM3wyegAr+hO6q12bCFYx6qXzU9FLCCdeqINqn9gUSSOlGtWNFrbAlrTyz/D4Yo66TqBDzvaLL63FMnhCLaXW/zJt3hNuEAJaPY2O6Ze1rX2WZ3Y+i+s3uQ8aLImtoCJhPe8CRx+OhuYiTzGhynFfGntZ0738/1RN4gNM0S/hTC4gLE7XMVBanJpGh32rFaiDwW4zAyXKBrDkL3QA3MS1RvLTJxGJ085S16hCk0C4ddAhZCvIM9Q==;U2FsdGVkX1+bXdFeKMs5G79catOCyby2n07A2fg0FjVAvrjQLZ0yfvDS4paJiFikLkodho0khz2YALKb2Y0K6w=="
87 changes: 83 additions & 4 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ steps:
diff: ".buildkite/scripts/diff.sh $BUILDKITE_COMMIT"
interpolation: false
watch:
# Core Lux Testing
- path:
- "src/"
- "ext/"
Expand All @@ -18,6 +19,70 @@ steps:
command: "buildkite-agent pipeline upload .buildkite/testing.yml"
agents:
queue: "juliagpu"

# LuxCUDA Testing
- path:
- "lib/LuxCUDA/"
- ".buildkite/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing_luxcuda.yml"
agents:
queue: "juliagpu"

# WeightInitializers Testing
- path:
- "lib/WeightInitializers/"
- ".buildkite/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing_weightinitializers.yml"
agents:
queue: "juliagpu"

# MLDataDevices Testing
- path:
- "lib/MLDataDevices/"
- ".buildkite/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing_mldatadevices.yml"
agents:
queue: "juliagpu"

# LuxLib Testing
- path:
- "lib/LuxLib/"
- ".buildkite/"
- "lib/LuxTestUtils/"
- "lib/LuxCore/"
- "lib/MLDataDevices/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing_luxlib.yml"
agents:
queue: "juliagpu"

# LuxTestUtils Testing
- path:
- "lib/LuxTestUtils/"
- ".buildkite/"
config:
command: "buildkite-agent pipeline upload .buildkite/testing_luxtestutils.yml"
agents:
queue: "juliagpu"

# Benchmarks
- path:
- "src/"
- "ext/"
- "test/"
- "Project.toml"
- ".buildkite/"
- "benchmarks/"
if: build.pull_request.labels includes "run benchmarks"
config:
command: "buildkite-agent pipeline upload .buildkite/benchmarks.yml"
agents:
queue: "juliagpu"

# Documentation
- path:
- "src/"
- "ext/"
Expand All @@ -26,20 +91,22 @@ steps:
- "docs/"
- "examples/"
- ".buildkite/"
- "lib"
config:
command: "buildkite-agent pipeline upload .buildkite/documentation.yml"
agents:
queue: "juliagpu"

# Downstream
- path:
- "src/"
- "ext/"
- "test/"
- "lib/"
- "Project.toml"
- ".buildkite/"
- "benchmarks/"
if: build.pull_request.labels includes "run benchmarks"
if: build.pull_request.labels includes "run downstream test"
config:
command: "buildkite-agent pipeline upload .buildkite/benchmarks.yml"
command: "buildkite-agent pipeline upload .buildkite/downstream.yml"
agents:
queue: "juliagpu"

Expand All @@ -48,6 +115,18 @@ steps:
agents:
queue: "juliagpu"
command: |
# Core Lux Testing
buildkite-agent pipeline upload .buildkite/testing.yml
# Subpackage testing
buildkite-agent pipeline upload .buildkite/testing_luxcuda.yml
buildkite-agent pipeline upload .buildkite/testing_weightinitializers.yml
buildkite-agent pipeline upload .buildkite/testing_luxlib.yml
buildkite-agent pipeline upload .buildkite/testing_mldatadevices.yml
buildkite-agent pipeline upload .buildkite/testing_luxtestutils.yml
# Documentation
buildkite-agent pipeline upload .buildkite/documentation.yml
# Benchmarks
buildkite-agent pipeline upload .buildkite/benchmarks.yml
117 changes: 64 additions & 53 deletions .buildkite/testing.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,48 @@
steps:
- group: ":julia: CUDA GPU"
- group: ":julia: (Lux) CUDA GPU"
steps:
- label: ":julia: Julia {{matrix.julia}} + CUDA GPU"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
- lib/LuxCore/src
- lib/LuxCore/ext
- lib/MLDataDevices/src
- lib/MLDataDevices/ext
- lib/WeightInitializers/src
- lib/WeightInitializers/ext
- lib/LuxLib/src
- lib/LuxLib/ext
- lib/LuxTestUtils/src
agents:
queue: "juliagpu"
cuda: "*"
command: |
julia --color=yes --code-coverage=user --depwarn=yes --project=. -e '
import Pkg;
dev_pkgs = Pkg.PackageSpec[];
for pkg in ("lib/LuxCore", "lib/MLDataDevices", "lib/WeightInitializers", "lib/LuxLib",)
push!(dev_pkgs, Pkg.PackageSpec(path=pkg));
end
Pkg.develop(dev_pkgs);
Pkg.Registry.update();
Pkg.instantiate();
Pkg.activate("test");
dev_pkgs = Pkg.PackageSpec[];
for pkg in ("lib/LuxTestUtils", "lib/LuxLib", "lib/MLDataDevices", "lib/LuxCore", ".")
push!(dev_pkgs, Pkg.PackageSpec(path=pkg))
end
Pkg.develop(dev_pkgs);
Pkg.instantiate();'
julia --color=yes --code-coverage=user --depwarn=yes --project=test -e '
import Pkg, Lux;
dir = dirname(pathof(Lux));
include(joinpath(dir, "../test/runtests.jl"))'
env:
BACKEND_GROUP: "CUDA"
if: build.message !~ /\[skip tests\]/ && build.message !~ /\[skip ci\]/
Expand All @@ -23,44 +51,49 @@ steps:
setup:
julia:
- "1.10"
- "1"

- group: ":telescope: Downstream CUDA"
steps:
- label: ":julia: {{matrix.repo}} (Julia 1 + CUDA GPU)"
plugins:
- JuliaCI/julia#v1:
version: "1.10"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
command: julia --code-coverage=user --color=yes --project .buildkite/scripts/downstream.jl "{{matrix.repo}}" "CUDA"
agents:
queue: "juliagpu"
cuda: "*"
if: build.message !~ /\[skip tests\]/ && build.message !~ /\[skip downstream\]/ && build.message !~ /\[skip ci\]/ && build.pull_request.labels includes "run downstream test"
timeout_in_minutes: 60
matrix:
setup:
repo:
- "Boltz"
- "NeuralPDE#GPU"
- "DeepEquilibriumNetworks"

- group: ":julia: AMD GPU"
- group: ":julia: (Lux) AMD GPU"
steps:
- label: ":julia: Julia: {{matrix.julia}} + AMD GPU"
plugins:
- JuliaCI/julia#v1:
version: "{{matrix.julia}}"
- JuliaCI/julia-test#v1:
test_args: "--quickfail"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
- lib/LuxCore/src
- lib/LuxCore/ext
- lib/MLDataDevices/src
- lib/MLDataDevices/ext
- lib/WeightInitializers/src
- lib/WeightInitializers/ext
- lib/LuxLib/src
- lib/LuxLib/ext
- lib/LuxTestUtils/src
command: |
julia --color=yes --code-coverage=user --depwarn=yes --project=. -e '
import Pkg;
dev_pkgs = Pkg.PackageSpec[];
for pkg in ("lib/LuxCore", "lib/MLDataDevices", "lib/WeightInitializers", "lib/LuxLib",)
push!(dev_pkgs, Pkg.PackageSpec(path=pkg));
end
Pkg.develop(dev_pkgs);
Pkg.Registry.update();
Pkg.instantiate();
Pkg.activate("test");
dev_pkgs = Pkg.PackageSpec[];
for pkg in ("lib/LuxTestUtils", "lib/LuxLib", "lib/MLDataDevices", "lib/LuxCore", ".")
push!(dev_pkgs, Pkg.PackageSpec(path=pkg))
end
Pkg.develop(dev_pkgs);
Pkg.instantiate();'
julia --color=yes --code-coverage=user --depwarn=yes --project=test -e '
import Pkg, Lux;
dir = dirname(pathof(Lux));
include(joinpath(dir, "../test/runtests.jl"))'
env:
BACKEND_GROUP: "AMDGPU"
agents:
Expand All @@ -73,29 +106,7 @@ steps:
setup:
julia:
- "1.10"

- group: ":telescope: Downstream AMD GPU"
steps:
- label: ":julia: {{matrix.repo}} (Julia 1 + AMD GPU)"
plugins:
- JuliaCI/julia#v1:
version: "1.10"
- JuliaCI/julia-coverage#v1:
codecov: true
dirs:
- src
- ext
command: julia --code-coverage=user --color=yes --project .buildkite/scripts/downstream.jl "{{matrix.repo}}" "AMDGPU"
agents:
queue: "juliagpu"
rocm: "*"
rocmgpu: "*"
if: build.message !~ /\[skip tests\]/ && build.message !~ /\[skip downstream\]/ && build.message !~ /\[skip ci\]/ && build.pull_request.labels includes "run downstream test"
timeout_in_minutes: 60
matrix:
setup:
repo:
- "Boltz"
- "1"

env:
SECRET_CODECOV_TOKEN: "jQ0BMTQgyZx7QGyU0Q2Ec7qB9mtE2q/tDu0FsfxvEG7/zOAGvXkyXrzIFFOQxvDoFcP+K2+hYZKMxicYdNqzr5wcxu505aNGN2GM3wyegAr+hO6q12bCFYx6qXzU9FLCCdeqINqn9gUSSOlGtWNFrbAlrTyz/D4Yo66TqBDzvaLL63FMnhCLaXW/zJt3hNuEAJaPY2O6Ze1rX2WZ3Y+i+s3uQ8aLImtoCJhPe8CRx+OhuYiTzGhynFfGntZ0738/1RN4gNM0S/hTC4gLE7XMVBanJpGh32rFaiDwW4zAyXKBrDkL3QA3MS1RvLTJxGJ085S16hCk0C4ddAhZCvIM9Q==;U2FsdGVkX1+bXdFeKMs5G79catOCyby2n07A2fg0FjVAvrjQLZ0yfvDS4paJiFikLkodho0khz2YALKb2Y0K6w=="
Loading

0 comments on commit 0f874c5

Please sign in to comment.