High performance distributed framework for training deep learning recommendation models based on PyTorch.

Overview


tutorials Documentation Status PyPI version Docker Pulls license

PERSIA (Parallel rEcommendation tRaining System with hybrId Acceleration) is developed by AI platform@Kuaishou Technology, collaborating with ETH. It is a PyTorch-based (the first public one to our best knowledge) system for training large scale deep learning recommendation models on commodity hardwares. It is capable of training recommendation models with up to 100 trillion parameters. To the best of our knowledge, this is the largest model size in recommendation systems so far. Empirical study on public datasets indicate PERSIA's significant advantage over several other existing training systems in recommendation [1]. Its efficiency and robustness have also been validated by multiple applications with 100 million level DAU at Kuaishou.

Disclaimer: The program is usable and has served several important businesses. However, the official English documentation and tutorials are still under heavy construction (there are some materials on the tutorials website, but they are pretty raw). We encourage adventurers to try out PERSIA and contribute!

News

  • AI Engines in the "Short-video" Era: Eating 100 Trillion Parameters, Invited talk, Facebook, 2021.
  • 单机训练速度提升 640 倍!独家解读快手商业广告模型 GPU 训练平台 PERSIA (In Chinese. Title: 640x Faster GPU Based Learning System for Ad Recommendation)
  • 创新、平衡与大格局:快手商业化的慢与快 (In Chinese. Title: Innovation, Balance, and Big Picture: The Speed of Kwai Commercialization)

Links

Discussion

Feel free to join our Telegram Group for discussion!

References

  1. Xiangru Lian, Binhang Yuan, Xuefeng Zhu, Yulong Wang, Yongjun He, Honghuan Wu, Lei Sun, Haodong Lyu, Chengjun Liu, Xing Dong, Yiqiao Liao, Mingnan Luo, Congfei Zhang, Jingru Xie, Haonan Li, Lei Chen, Renjie Huang, Jianying Lin, Chengchun Shu, Xuezhong Qiu, Zhishan Liu, Dongying Kong, Lei Yuan, Hai Yu, Sen Yang, Ce Zhang, & Ji Liu. (2021). Persia: A Hybrid System Scaling Deep Learning Based Recommenders up to 100 Trillion Parameters.

  2. Ji Liu & Ce Zhang. (2021). Distributed Learning Systems with First-order Methods.

License

This source code is licensed under the MIT license found in the LICENSE file in the root directory of this source tree.

Comments
  • chore(deps): bump openssl from 0.10.38 to 0.10.45 in /rust

    chore(deps): bump openssl from 0.10.38 to 0.10.45 in /rust

    Bumps openssl from 0.10.38 to 0.10.45.

    Commits
    • 7df5686 Release openssl v0.10.45
    • f32af9f Release openssl-sys v0.9.80
    • deac6b7 Merge pull request #1763 from CfirTsabari/cfirtsabari/deperecated-functions-1745
    • 27edce9 Mark Openssl # deprecated functions
    • f0ff8a7 Merge pull request #1762 from wiktor-k/fix-broken-relaxation
    • 45e5dce Expose Cipher::cipher_final_unchecked
    • 71013f7 Fix output buffer check introduced in #1733
    • 64ba480 Merge pull request #1761 from vishwin/master
    • 0d8d502 Expose EVP_PKEY_security_bits for LibreSSL 3.6.0 and later
    • e01fbac openssl-sys: add LibreSSL 3.6.0 to cfgs
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 4
  • The throughput is extremely low

    The throughput is extremely low

    I adopted Persia to implement a DLRM and run it over Criteo Kaggle dataset.
    I set batch size to 1024, and below is the content of docker-compose.yml:

    version: "3.2"
    services:
      persia_nats_service:
        image: nats:latest
        deploy:
          replicas: 1
    
      data_loader1:
        env_file:
          - .docker.env
        depends_on:
          - nn_worker
          - embedding_worker
          - persia_nats_service
        image: persia-dlrm
        command: persia-launcher data-loader --replica-index 0 --replica-size 2
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
    
      data_loader2:
        env_file:
          - .docker.env
        depends_on:
          - nn_worker
          - embedding_worker
          - persia_nats_service
        image: persia-dlrm
        command: persia-launcher data-loader --replica-index 1 --replica-size 2
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
    
      nn_worker:
        env_file:
          - .docker.env
        environment:
          NCCL_SOCKET_IFNAME: eth0
          CUBLAS_WORKSPACE_CONFIG: :4096:8
        image: persia-dlrm
        command: persia-launcher nn-worker --nproc-per-node 1 --nnodes 1 --node-rank 0
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
    
      embedding_worker1:
        env_file:
          - .docker.env
        depends_on:
          - embedding_parameter_server
        image: persia-dlrm
        command: >
          bash -c "persia-launcher embedding-worker --embedding-config $$PERSIA_EMBEDDING_CONFIG
          --global-config $$PERSIA_GLOBAL_CONFIG --replica-index 0 --replica-size 2"
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
    
      embedding_worker2:
        env_file:
          - .docker.env
        depends_on:
          - embedding_parameter_server
        image: persia-dlrm
        command: >
          bash -c "persia-launcher embedding-worker --embedding-config $$PERSIA_EMBEDDING_CONFIG
          --global-config $$PERSIA_GLOBAL_CONFIG --replica-index 1 --replica-size 2"
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
    
      embedding_parameter_server1:
        env_file:
          - .docker.env
        image: persia-dlrm
        command: >
          bash -c "persia-launcher embedding-parameter-server --embedding-config $$PERSIA_EMBEDDING_CONFIG
          --global-config $$PERSIA_GLOBAL_CONFIG --replica-index 0 --replica-size 2"
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
    
      embedding_parameter_server2:
        env_file:
          - .docker.env
        image: persia-dlrm
        command: >
          bash -c "persia-launcher embedding-parameter-server --embedding-config $$PERSIA_EMBEDDING_CONFIG
          --global-config $$PERSIA_GLOBAL_CONFIG --replica-index 1 --replica-size 2"
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
        volumes:
          - type: bind
            source: .
            target: /workspace
          - type: bind
            source: ../criteo_kaggle
            target: /workspace/criteo_kaggle
    

    Here's a screenshot of the running process image

    As you can see, the throughput is about 30 it/s. Since the batch size is 1024, the throughput is only half of the results reported in your paper. I also notice that the logger kept warning that the local forwarded queue is empty, and these processes didn't cost any GPU memory. Is there any problem about my settings or, do you guys have any suggestions on how to improve the throughput?

    question wontfix 
    opened by zxgx 4
  • chore(deps): bump snafu from 0.6.10 to 0.7.4 in /rust

    chore(deps): bump snafu from 0.6.10 to 0.7.4 in /rust

    Bumps snafu from 0.6.10 to 0.7.4.

    Changelog

    Sourced from snafu's changelog.

    0.7.4 - 2022-12-19

    Changed

    • Report and the [report] macro now remove redundant parts from the messages that many errors duplicate from their underlying sources.

    0.7.3 - 2022-10-20

    Fixed

    • The macro no longer generates invalid code when implicitly-generated types (such as backtraces) were used in conjunction with #[snafu(source(from))] and the type before transformation does not implement std::error::Error.

    [0.7.2] - 2022-10-09

    Added

    • Report can be returned from main or test functions to provide a user-friendly display of errors.

    • A cheat sheet for the most common #[snafu(...)] attribute usages has been added to the Snafu macro's documentation.

    • Optional support for using the standard library's std::backtrace::Backtrace type via the backtraces-impl-std feature flag.

    • Optional support for implementing the Provider API using the std::error::Error::provide method via the unstable-provider-api feature flag.

    • Optional support for implementing the core::error::Error trait instead of std::error::Error via the unstable-core-error feature flag.

    • GenerateImplicitData has a new method generate_with_source.

    Changed

    • ErrorCompat::iter_chain and ChainCompat are now available in no_std environments.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump thiserror from 1.0.30 to 1.0.38 in /rust

    chore(deps): bump thiserror from 1.0.30 to 1.0.38 in /rust

    Bumps thiserror from 1.0.30 to 1.0.38.

    Release notes

    Sourced from thiserror's releases.

    1.0.38

    • Documentation improvements

    1.0.37

    • Documentation improvements

    1.0.36

    1.0.35

    • More work on integrating std::any::Provider for backtrace support
    • Fix "Multiple applicable provide methods in scope" error when the caller has both std::error::Error and std::any::Provide traits in scope (#185)

    1.0.34

    • Tweak "generic member access" based Backtrace implementation (#184)

    1.0.33

    1.0.32

    • Add keywords to crates.io metadata

    1.0.31

    • Improve diagnostic when there is an enum variant containing #[from] #[backtrace] Error, Backtrace (#163)
    Commits
    • 74bfe75 Release 1.0.38
    • cfc7d8c Update build status badge
    • db78fa2 Update ui test suite to nightly-2022-12-15
    • c25a710 Time out workflows after 45 minutes
    • 464e2e7 Merge pull request #200 from dtolnay/displayattr
    • 4b06a3e Add test of Display impl nested inside display attribute
    • 29ee95e Ui test changes for trybuild 1.0.66
    • 8a996a5 Release 1.0.37
    • 3a0bac2 Merge pull request #197 from dtolnay/backtracedoc
    • c2759ce Fix documentation mentioning 'backtrace()' method
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump serde from 1.0.130 to 1.0.152 in /rust

    chore(deps): bump serde from 1.0.130 to 1.0.152 in /rust

    Bumps serde from 1.0.130 to 1.0.152.

    Release notes

    Sourced from serde's releases.

    v1.0.152

    • Documentation improvements

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    • Allow internally tagged newtype variant to contain unit (#2303, thanks @​tage64)

    v1.0.145

    • Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is Sized (#2282, thanks @​ChayimFriedman2)

    v1.0.144

    • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#2263, thanks @​taiki-e)

    v1.0.143

    • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#2253, thanks @​taiki-e)

    v1.0.142

    • Add keywords to crates.io metadata

    v1.0.141

    • Add no-std category to crates.io metadata

    v1.0.140

    • Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#2251, thanks @​taiki-e)

    v1.0.139

    • Add new constructor function for all IntoDeserializer impls (#2246)

    v1.0.138

    • Documentation improvements

    v1.0.137

    • Update documentation links to some data formats whose repos have moved (#2201, thanks @​atouchet)
    • Fix declared rust-version of serde and serde_test (#2168)

    ... (truncated)

    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 44bf363 Release 1.0.151
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump proc-macro2 from 1.0.32 to 1.0.49 in /rust

    chore(deps): bump proc-macro2 from 1.0.32 to 1.0.49 in /rust

    Bumps proc-macro2 from 1.0.32 to 1.0.49.

    Release notes

    Sourced from proc-macro2's releases.

    1.0.49

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    1.0.48

    • Documentation improvements

    1.0.47

    • Fix integer overflow when nesting depth of nested comments exceeds 4 billion (#357)

    1.0.46

    • Make proc_macro2::TokenStream's FromStr impl consistent with proc_macro::TokenStream's on strings that begin with a byte order mark \u{feff} (#353)

    1.0.45

    • Fix panic on parsing disallowed raw identifiers such as r#self (#351)

    1.0.44

    • Expose span.before() and span.after() to access an empty Span located immediately before or after the input span (#348, upstream tracking issue: rust-lang/rust#87552)

    1.0.43

    • Add keywords to crates.io metadata

    1.0.42

    • Improve parsing performance in non-macro mode (#335)
    • Expose a size_hint() for TokenStream's iterator (#334)

    1.0.41

    • Produce an accurate .size_hint() from TokenStream's iterator (#334)

    1.0.40

    1.0.39

    1.0.38

    • Reduce allocations done by Literal::byte_string constructor (#328)

    1.0.37

    • Rely on unicode-xid to optimize ASCII properly (#325)

    1.0.36

    • Improve performance of creating literal tokens through quote! macro

    1.0.35

    • Try to diagnose "cannot find type SourceFile" errors better (#311)

    1.0.34

    • Work around doc build failure due to docs.rs flags change (#310)

    1.0.33

    ... (truncated)

    Commits
    • 293705d Release 1.0.49
    • 6b9ee3d Opt out -Zrustdoc-scrape-examples on docs.rs
    • a83ad60 Release 1.0.48
    • b4fa77f Update build status badge
    • 975c324 Time out workflows after 45 minutes
    • f633e31 MIT copyright line
    • 47c91c8 Release 1.0.47
    • c694208 Make i's inferred type explicit to be consistent with depth
    • 46e9bd6 Merge pull request #358 from dtolnay/depth
    • 5635f1b Fix integer overflow in nested comment parser
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump serde_bytes from 0.11.5 to 0.11.8 in /rust

    chore(deps): bump serde_bytes from 0.11.5 to 0.11.8 in /rust

    Bumps serde_bytes from 0.11.5 to 0.11.8.

    Release notes

    Sourced from serde_bytes's releases.

    0.11.8

    • Documentation improvements

    0.11.7

    • Add categories and keywords to crates.io metadata

    0.11.6

    • Add rust-version entry to Cargo.toml to declare the oldest supported compiler version
    Commits
    • 68fe3ab Release 0.11.8
    • c90173f Update build status badge
    • f4f82f4 Time out workflows after 45 minutes
    • 3491bb2 MIT copyright line
    • 427c2ae Remove default package.readme metadata from Cargo.toml
    • 9284df4 GitHub Workflows security hardening
    • 29c9985 Release 0.11.7
    • 306113f Update keywords in crates.io metadata
    • d762845 Add no-std category to crates.io metadata
    • b96a46e Sort package entries in Cargo.toml
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump quote from 1.0.10 to 1.0.23 in /rust

    chore(deps): bump quote from 1.0.10 to 1.0.23 in /rust

    Bumps quote from 1.0.10 to 1.0.23.

    Release notes

    Sourced from quote's releases.

    1.0.23

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    1.0.22

    • Documentation improvements

    1.0.21

    • Add keywords to crates.io metadata

    1.0.20

    • Remove workaround for dealing with invalid spans on new enough compilers (#224, thanks @​mystor)
    • Use Ident::new_raw to quote raw identifiers (#225, thanks @​mystor)

    1.0.19

    • Improve the way rustc's -Zunpretty=expanded renders quote's expanded code (#221)

    1.0.18

    • Special case quote!/quote_spanned! for inputs of size 1 and 2 tokens to improve performance (#217, thanks @​nnethercote)
    • Documentation improvement (#219)

    1.0.17

    • Documentation improvements

    1.0.16

    1.0.15

    1.0.14

    • Optimization to reduce calls over the proc macro bridge (#203)

    1.0.13

    • Documentation improvements

    1.0.12

    • Fix proc-macro2 dependency to work with -Zminimal-versions builds

    1.0.11

    • Improve performance of quote invocations involving literals, lifetimes, and underscore tokens
    Commits
    • 550af67 Release 1.0.23
    • b0337d0 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 2386c5a Release 1.0.22
    • ead304a Update build status badge
    • 51d3bd2 Update ui test suite to nightly-2022-12-15
    • 2922a8e Time out workflows after 45 minutes
    • 6f42f3c Fix renamed let_underscore_drop lint
    • b2e30cc MIT copyright line
    • efc9b69 Ui test changes for trybuild 1.0.66
    • 1e2b198 Raise minimum tested toolchain to rust 1.56
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump async-lock from 2.4.0 to 2.6.0 in /rust

    chore(deps): bump async-lock from 2.4.0 to 2.6.0 in /rust

    Bumps async-lock from 2.4.0 to 2.6.0.

    Release notes

    Sourced from async-lock's releases.

    v2.6.0

    • Add OnceCell. (#27)
    • Support wasm64.

    v2.5.0

    • Fix an issue where the future returned by Mutex::lock_arc/Semaphore::acquire_arc holds a reference to self. (#20, #21)
    Changelog

    Sourced from async-lock's changelog.

    Version 2.6.0

    • Add OnceCell. (#27)
    • Support wasm64.

    Version 2.5.0

    • Fix an issue where the future returned by Mutex::lock_arc/Semaphore::acquire_arc holds a reference to self. (#20, #21)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump serde from 1.0.130 to 1.0.151 in /rust

    chore(deps): bump serde from 1.0.130 to 1.0.151 in /rust

    Bumps serde from 1.0.130 to 1.0.151.

    Release notes

    Sourced from serde's releases.

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)

    v1.0.147

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#2305)

    v1.0.146

    • Allow internally tagged newtype variant to contain unit (#2303, thanks @​tage64)

    v1.0.145

    • Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is Sized (#2282, thanks @​ChayimFriedman2)

    v1.0.144

    • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#2263, thanks @​taiki-e)

    v1.0.143

    • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#2253, thanks @​taiki-e)

    v1.0.142

    • Add keywords to crates.io metadata

    v1.0.141

    • Add no-std category to crates.io metadata

    v1.0.140

    • Invert serde_derive cfgs to convenience non-Cargo builds on a modern toolchain (#2251, thanks @​taiki-e)

    v1.0.139

    • Add new constructor function for all IntoDeserializer impls (#2246)

    v1.0.138

    • Documentation improvements

    v1.0.137

    • Update documentation links to some data formats whose repos have moved (#2201, thanks @​atouchet)
    • Fix declared rust-version of serde and serde_test (#2168)

    v1.0.136

    • Improve default error message when Visitor fails to deserialize a u128 or i128 (#2167)

    ... (truncated)

    Commits
    • 44bf363 Release 1.0.151
    • f261184 Merge pull request #2344 from dtolnay/coreerror
    • df40f80 Make StdError identical to core::error::Error on feature="unstable"
    • e7060ba Merge pull request #2342 from atouchet/badges
    • d98f0ee Update build status badge
    • 4f157a8 Prevent build.rs rerunning unnecessarily on all source changes
    • d493649 Release 1.0.150
    • 0e947e6 Merge pull request #2338 from serde-rs/atomic
    • 9249dab Deduplicate atomic_impl macro calls
    • 7440e56 Deduplicate atomic_impl macro implementations
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump rayon from 1.5.1 to 1.6.1 in /rust

    chore(deps): bump rayon from 1.5.1 to 1.6.1 in /rust

    Bumps rayon from 1.5.1 to 1.6.1.

    Changelog

    Sourced from rayon's changelog.

    Release rayon 1.6.1 (2022-12-09)

    • Simplified par_bridge to only pull one item at a time from the iterator, without batching. Threads that are waiting for iterator items will now block appropriately rather than spinning CPU. (Thanks @​njaard!)
    • Added protection against recursion in par_bridge, so iterators that also invoke rayon will not cause mutex recursion deadlocks.

    Release rayon-core 1.10.1 (2022-11-18)

    • Fixed a race condition with threads going to sleep while a broadcast starts.

    Release rayon 1.6.0 / rayon-core 1.10.0 (2022-11-18)

    • The minimum supported rustc is now 1.56.
    • The new IndexedParallelIterator::fold_chunks and fold_chunks_with methods work like ParallelIterator::fold and fold_with with fixed-size chunks of items. This may be useful for predictable batching performance, without the allocation overhead of IndexedParallelIterator::chunks.
    • New "broadcast" methods run a given function on all threads in the pool. These run at a sort of reduced priority after each thread has exhausted their local work queue, but before they attempt work-stealing from other threads.
      • The global broadcast function and ThreadPool::broadcast method will block until completion, returning a Vec of all return values.
      • The global spawn_broadcast function and methods on ThreadPool, Scope, and ScopeFifo will run detached, without blocking the current thread.
    • Panicking methods now use #[track_caller] to report the caller's location.
    • Fixed a truncated length in vec::Drain when given an empty range.

    Contributors

    Thanks to all of the contributors for this release!

    Release rayon 1.5.3 (2022-05-13)

    • The new ParallelSliceMut::par_sort_by_cached_key is a stable sort that caches the keys for each item -- a parallel version of slice::sort_by_cached_key.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    wontfix dependencies 
    opened by dependabot[bot] 3
  • chore(deps): bump once_cell from 1.8.0 to 1.17.0 in /rust

    chore(deps): bump once_cell from 1.8.0 to 1.17.0 in /rust

    Bumps once_cell from 1.8.0 to 1.17.0.

    Changelog

    Sourced from once_cell's changelog.

    1.17.0

    • Add race::OnceRef for storing a &'a T.

    1.16.0

    • Add no_std implementation based on critical-section, #195.
    • Deprecate atomic-polyfill feature (use the new critical-section instead)

    1.15.0

    • Increase minimal supported Rust version to 1.56.0.
    • Implement UnwindSafe even if the std feature is disabled.

    1.14.0

    • Add extension to unsync and sync Lazy mut API:
      • force_mut
      • get_mut

    1.13.1

    • Make implementation compliant with strict provenance.
    • Upgrade atomic-polyfill to 1.0

    1.13.0

    • Add Lazy::get, similar to OnceCell::get.

    1.12.1

    • Remove incorrect debug_assert.

    1.12.0

    • Add OnceCell::wait, a blocking variant of get.

    1.11.0

    • Add OnceCell::with_value to create initialized OnceCell in const context.
    • Improve Clone implementation for OnceCell.
    • Rewrite parking_lot version on top of parking_lot_core, for even smaller cells!

    1.10.0

    • upgrade parking_lot to 0.12.0 (note that this bumps MSRV with parking_lot feature enabled to 1.49.0).

    1.9.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump syn from 1.0.81 to 1.0.107 in /rust

    chore(deps): bump syn from 1.0.81 to 1.0.107 in /rust

    Bumps syn from 1.0.81 to 1.0.107.

    Release notes

    Sourced from syn's releases.

    1.0.107

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    1.0.106

    • Documentation improvements

    1.0.105

    • Improve parse errors related to dyn and impl type syntax (#1245)

    1.0.104

    • Add PathArguments::is_none()

    1.0.103

    1.0.102

    • More efficient internal representation for TokenBuffer (#1223, thanks @​CAD97)
    • Fix parsing of a left shift after macro metavariable in type position (#1229)

    1.0.101

    • Eliminate a bunch of redundant work done by LitStr::parse (#1221)

    1.0.100

    1.0.99

    • Add categories and keywords to crates.io metadata

    1.0.98

    • Format example code with rustfmt

    1.0.97

    • Update examples

    1.0.96

    • Add a punct_mut() method on syn::punctuated::Pair to return Option<&mut P> (#1183)

    1.0.95

    1.0.94

    • Resolve some unused_macro_rules warnings

    1.0.93

    • Fix compile error when Some means something unusual in the expression namespace of the scope where custom_keyword is invoked (#1171, thanks @​zakarumych)

    1.0.92

    ... (truncated)

    Commits
    • 4168f6b Release 1.0.107
    • d8690f2 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 5306cde Release 1.0.106
    • 6db337c Update build status badge
    • 876a605 Merge pull request #1251 from dtolnay/instaloop
    • 65e0e42 Fix invalid use of insta snapshot inside a loop
    • 1d09024 Update test suite to nightly-2022-12-03
    • 998e863 Release 1.0.105
    • 02e2a21 Merge pull request #1247 from dtolnay/punctdrop
    • 9113ad0 Help infer may_dangle on type parameter of Punctuated iterator Drop impls
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump anyhow from 1.0.45 to 1.0.68 in /rust

    chore(deps): bump anyhow from 1.0.45 to 1.0.68 in /rust

    Bumps anyhow from 1.0.45 to 1.0.68.

    Release notes

    Sourced from anyhow's releases.

    1.0.68

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    1.0.67

    • Improve the backtrace captured when context() is used on an Option (#280)

    1.0.66

    • Reduce unhelpful backtrace frames in backtraces captured during a context call (#279)

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    1.0.62

    • Fix extra rebuilding when interleaving command-line cargo invocations with IDE builds (#261)

    1.0.61

    • Work around rust-analyzer builds poisoning all subsequent command-line cargo builds (#252)

    1.0.60

    • Propagate --target to rustc invocation when deciding about backtrace support (#249, thanks @​RalfJung)

    1.0.59

    • Update crates.io metadata to include no-std category

    1.0.58

    • Fix some broken links in documentation

    1.0.57

    • Remove a log4rs-specific workaround from bail! macro implementation

    1.0.56

    • Add must_use warning when an Error created by anyhow! is not used, perhaps because the programmer meant to write bail! instead (#229)

    1.0.55

    • Documentation improvements

    1.0.54

    • Construct more helpful error message from ensure! when the expression involves a negative literal const generic as the first generic argument of a method call (#224)

    1.0.53

    1.0.52

    • Reduce overhead of backtrace capture in the case that backtraces are not enabled (#212)

    ... (truncated)

    Commits
    • 867763b Release 1.0.68
    • c0a87d0 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 1cc707b Release 1.0.67
    • 613b261 Update build status badge
    • 0f922d7 Disable backtrace CI on Rust 1.50
    • acecd9b Update ui test suite to nightly-2022-12-15
    • 0bac51f Time out workflows after 45 minutes
    • 60e8800 Fix renamed let_underscore_drop lint
    • 8d1c734 Update ui test suite to nightly-2022-11-16
    • 451651b Update ui test suite to nightly-2022-11-11
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump enum_dispatch from 0.3.7 to 0.3.9 in /rust

    chore(deps): bump enum_dispatch from 0.3.7 to 0.3.9 in /rust

    Bumps enum_dispatch from 0.3.7 to 0.3.9.

    Changelog

    Sourced from enum_dispatch's changelog.

    0.3.9

    • Add support for const generics (#51, !25)

    0.3.8

    • Preserve attributes from inner fields of enum variants (!27)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Owner
null
🦀 Example of serving deep learning models in Rust with batched prediction

rust-dl-webserver This project provides an example of serving a deep learning model with batched prediction using Rust. In particular it runs a GPT2 m

Evan Pete Walsh 28 Dec 15, 2022
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a code that simulates quantum circuits. In order to learn more about damavand, refer to the documentation. Development status Core feature

prevision.io 6 Mar 29, 2022
Training material for the KDAB training day 2023

Rust & Qt workshop This workbook contains the material for a Rust & Qt workshop held by Ferrous Systems, developed and held together with KDAB. It is

Ferrous Systems 4 Nov 17, 2023
Tutorial for Porting PyTorch Transformer Models to Candle (Rust)

Candle Tutorial - Convert Pytorch Models to Candle Candle is an ML framework written in rust that takes advantage of the speed and memory safety Rust

Ogundepo Odunayo 28 Oct 23, 2023
Deduplicating Training Data Makes Language Models Better

Deduplicating Training Data Makes Language Models Better This repository contains code to deduplicate language model datasets as descrbed in the paper

Google Research 431 Dec 27, 2022
A Machine Learning Framework for High Performance written in Rust

polarlight polarlight is a machine learning framework for high performance written in Rust. Key Features TBA Quick Start TBA How To Contribute Contrib

Chris Ohk 25 Aug 23, 2022
NEATeRS is a library for training a genetic neural net through reinforcement learning.

NEATeRS NEATeRS is a library for training a genetic neural net through reinforcement learning. It uses the NEAT algorithm developed by Ken Stanley whi

TecTrixer 3 Nov 28, 2022
Open deep learning compiler stack for cpu, gpu and specialized accelerators

Open Deep Learning Compiler Stack Documentation | Contributors | Community | Release Notes Apache TVM is a compiler stack for deep learning systems. I

The Apache Software Foundation 8.9k Jan 4, 2023
A deep learning library for rust

Alumina An experimental deep learning library written in pure rust. Breakage expected on each release in the short term. See mnist.rs in examples or R

zza 95 Nov 30, 2022
Awesome deep learning crate

NeuroFlow is fast neural networks (deep learning) Rust crate. It relies on three pillars: speed, reliability, and speed again. Hello, everyone! Work o

Mikhail Kravets 70 Nov 20, 2022
Messing around with deep learning

Deep Learning Test Implementing deep learning in Rust using just a linear algebra library (nalgebra). The neural network (4 hidden layers, 32 neurons

Dmitry Zamkov 9 Jun 22, 2022
miniature: a toy deep learning library written in Rust

miniature: a toy deep learning library written in Rust A miniature is a toy deep learning library written in Rust. The miniature is: implemented for a

Takuma Seno 4 Nov 29, 2021
Deep learning superresolution in pure rust

Rusty_SR A Rust super-resolution tool, which when given a low resolution image utilises deep learning to infer the corresponding high resolution image

zza 189 Dec 9, 2022
Deep learning at the speed of light.

luminal Deep learning at the speed of light. use luminal::prelude::*; // Setup graph and tensors let mut cx = Graph::new(); let a = cx.new_tensor::<R

Joe Fioti 3 Jul 25, 2023
Rust bindings for the C++ api of PyTorch.

tch-rs Rust bindings for the C++ api of PyTorch. The goal of the tch crate is to provide some thin wrappers around the C++ PyTorch api (a.k.a. libtorc

Laurent Mazare 2.3k Jan 1, 2023
l2 is a fast, Pytorch-style Tensor+Autograd library written in Rust

l2 • ?? A Pytorch-style Tensor+Autograd library written in Rust Installation • Contributing • Authors • License • Acknowledgements Made by Bilal Khan

Bilal Khan 163 Dec 25, 2022
Docker for PyTorch rust bindings `tch`. Example of pretrain model.

tch-rs-pretrain-example-docker Docker for PyTorch rust bindings tch-rs. Example of pretrain model. Docker files support the following install libtorch

vaaaaanquish 5 Oct 7, 2022
Sample Python extension using Rust/PyO3/tch to interact with PyTorch

Python extensions using tch to interact with PyTorch This sample crate shows how to use tch to write a Python extension that manipulates PyTorch tenso

Laurent Mazare 5 Jun 10, 2023
☁ Puff ☁ - The deep stack framework.

☁ Puff ☁ Python with an async runtime built-in Rust for GraphQL, ASGI, WSGI, Postgres, PubSub, Redis, Distributed Tasks, and HTTP2 Client. What is Puf

Kyle Hanson 290 Jan 8, 2023