A library implementing GPU-accelerated cryptographic functionality for the zkSync prover.

Overview

zkSync Era: A ZK Rollup For Scaling Ethereum

Logo

zkSync Era is a layer 2 rollup that uses zero-knowledge proofs to scale Ethereum without compromising on security or decentralization. Since it's EVM compatible (Solidity/Vyper), 99% of Ethereum projects can redeploy without refactoring or re-auditing a single line of code. zkSync Era also uses an LLVM-based compiler that will eventually let developers write smart contracts in C++, Rust and other popular languages.

Boojum-CUDA

Boojum-CUDA is a library implementing GPU-accelerated cryptographic functionality for the zkSync prover.

Prerequisites:

  • CUDA 12.x
  • CMake 3.24 and up
  • clang
  • rust nightly toolchain

By default, the CUDA code is compiled for the GPU that is present in the system. If there is no GPU in the system or another architecture is desired, the environment variable CUDAARCHS can be set to the desired architecture. See https://cmake.org/cmake/help/latest/variable/CMAKE_CUDA_ARCHITECTURES.html.

Policies

License

zkSync Era is distributed under the terms of either

at your option.

Disclaimer

zkSync Era has been through lots of testing and audits. Although it is live, it is still in alpha state and will go through more audits and bug bounties programs. We would love to hear our community's thoughts and suggestions about it! It is important to state that forking it now can potentially lead to missing important security updates, critical features, and performance improvements.

You might also like...
How to: Run Rust code on your NVIDIA GPU

Status This documentation about an unstable feature is UNMAINTAINED and was written over a year ago. Things may have drastically changed since then; r

🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧

🐉 rust-gpu Rust as a first-class language and ecosystem for GPU graphics & compute shaders Current Status 🚧 Note: This project is still heavily in d

A Demo server serving Bert through ONNX with GPU written in Rust with 3

Demo BERT ONNX server written in rust This demo showcase the use of onnxruntime-rs on BERT with a GPU on CUDA 11 served by actix-web and tokenized wit

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 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

A repo for learning how to parallelize computations in the GPU using Apple's Metal, in Rust.

Metal playground in rust Made for learning how to parallelize computations in the GPU using Apple's Metal, in Rust, via the metal crate. Overview The

LLaMa 7b with CUDA acceleration implemented in rust. Minimal GPU memory needed!

LLaMa 7b in rust This repo contains the popular LLaMa 7b language model, fully implemented in the rust programming language! Uses dfdx tensors and CUD

An NVIDIA SMI'esk GPU Monitoring tool for your terminal.
An NVIDIA SMI'esk GPU Monitoring tool for your terminal.

NVTOP An NVIDIA SMI'esk GPU Monitoring tool for your terminal. art by stable-diffusion + Maz Contents: usage prerequisites installation why troublesho

Signed distance functions + Rust (CPU & GPU) = ❤️❤️
Signed distance functions + Rust (CPU & GPU) = ❤️❤️

sdf-playground Signed distance functions + Rust (CPU & GPU) = ❤️❤️ Platforms: Windows, Mac & Linux. About sdf-playground is a demo showcasing how you

rust-gpu CLI driver

rust-gpu-driver Experiment to make rust-gpu more accessible as a GPU shading language in various projects. DISCLAIMER: This is an unstable experiment

Comments
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • boojum-cuda/Cargo.toml (cargo)
    • criterion-cuda/Cargo.toml (cargo)
    • cudart-sys/Cargo.toml (cargo)
    • cudart/Cargo.toml (cargo)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Show all Merge Confidence badges for pull requests.
    • Enable Renovate Dependency Dashboard creation.
    • Use semantic commit type fix for dependencies and chore for all others if semantic commits are in use.
    • Ignore node_modules, bower_components, vendor and various test/tests directories.
    • Group known monorepo packages together.
    • Use curated list of recommended non-monorepo package groupings.
    • Apply crowd-sourced package replacement rules.
    • Apply crowd-sourced workarounds for known problems with packages.

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 10 Pull Requests:

    Update Rust crate cmake to ^0.1.50
    • Schedule: ["at any time"]
    • Branch name: renovate/cmake-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade cmake to ^0.1.50
    Update Rust crate bindgen to ^0.68.1
    • Schedule: ["at any time"]
    • Branch name: renovate/bindgen-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade bindgen to ^0.68.1
    Update Rust crate bitflags to ^2.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/bitflags-2.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade bitflags to ^2.4.0
    Update Rust crate blake2 to ^0.10.6
    • Schedule: ["at any time"]
    • Branch name: renovate/blake2-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade blake2 to ^0.10.6
    Update Rust crate criterion to ^0.5.1
    • Schedule: ["at any time"]
    • Branch name: renovate/criterion-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade criterion to ^0.5.1
    Update Rust crate criterion-macro to ^0.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/criterion-macro-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade criterion-macro to ^0.4.0
    Update Rust crate itertools to ^0.11.0
    • Schedule: ["at any time"]
    • Branch name: renovate/itertools-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade itertools to ^0.11.0
    Update Rust crate lazy_static to ^1.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/lazy_static-1.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade lazy_static to ^1.4.0
    Update Rust crate rand to ^0.8.5
    • Schedule: ["at any time"]
    • Branch name: renovate/rand-0.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade rand to ^0.8.5
    Update Rust crate rayon to ^1.8.0
    • Schedule: ["at any time"]
    • Branch name: renovate/rayon-1.x
    • Merge into: mirror-main-c6a9aedc21c578a827bde6085c4a825a9f148fbb
    • Upgrade rayon to ^1.8.0

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
Owner
Matter Labs
Practical applications of Zero-Knowledge Proofs
Matter Labs
Wonnx - a GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web

Wonnx is a GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web. Supported Platforms (enabled by wgpu) API Windows Linux &

WebONNX 354 Jan 6, 2023
A gpu accelerated (optional) neural network Rust crate.

Intricate A GPU accelerated library that creates/trains/runs neural networks in pure safe Rust code. Architechture overview Intricate has a layout ver

Gabriel Miranda 11 Dec 26, 2022
Program implementing the approximate version of DBSCAN introduced by Gan and Tao

appr_dbscan_rust Rust implementation of the approximate version of DBSCAN introduced by Gan and Tao in this paper Notice An upated version of this lib

Ivano Donadi 1 May 18, 2021
A toolkit for implementing polynomial IOPs (PIOPs)

Plonky3 Plonky3 is a toolkit for implementing polynomial IOPs (PIOPs), such as PLONK and STARKs. It aims to support several polynomial commitment sche

null 5 Mar 31, 2023
Open Machine Intelligence Framework for Hackers. (GPU/CPU)

Leaf • Introduction Leaf is a open Machine Learning Framework for hackers to build classical, deep or hybrid machine learning applications. It was ins

Autumn 5.5k Jan 1, 2023
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
Rust based Cross-GPU Machine Learning

HAL : Hyper Adaptive Learning Rust based Cross-GPU Machine Learning. Why Rust? This project is for those that miss strongly typed compiled languages.

Jason Ramapuram 83 Dec 20, 2022
A real-time implementation of "Ray Tracing in One Weekend" using nannou and rust-gpu.

Real-time Ray Tracing with nannou & rust-gpu An attempt at a real-time implementation of "Ray Tracing in One Weekend" by Peter Shirley. This was a per

null 89 Dec 23, 2022
Ecosystem of libraries and tools for writing and executing extremely fast GPU code fully in Rust.

Ecosystem of libraries and tools for writing and executing extremely fast GPU code fully in Rust.

Riccardo D'Ambrosio 2.1k Jan 5, 2023
Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust.

The Rust CUDA Project An ecosystem of libraries and tools for writing and executing extremely fast GPU code fully in Rust Guide | Getting Started | Fe

Rust GPU 2.1k Dec 30, 2022