Skip to content

Commit

Permalink
WIP: add rust-agent-qbg
Browse files Browse the repository at this point in the history
  • Loading branch information
datelier committed Nov 21, 2024
1 parent 3d51a12 commit 6de8a6a
Show file tree
Hide file tree
Showing 8 changed files with 1,079 additions and 0 deletions.
11 changes: 11 additions & 0 deletions rust/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ members = [
"bin/agent",
"libs/algorithm",
"libs/algorithms/ngt",
"libs/algorithms/qbg",
"libs/algorithms/faiss",
]
1 change: 1 addition & 0 deletions rust/libs/algorithm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ edition = "2021"
anyhow = "1.0.88"
faiss = { version = "0.1.0", path = "../algorithms/faiss" }
ngt = { version = "0.1.0", path = "../algorithms/ngt" }
qbg = { version = "0.1.0", path = "../algorithms/qbg" }
proto = { version = "0.1.0", path = "../proto" }
tonic = "0.12.2"
29 changes: 29 additions & 0 deletions rust/libs/algorithms/qbg/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#
# Copyright (C) 2019-2024 vdaas.org vald team <[email protected]>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
[package]
name = "qbg"
version = "0.1.0"
edition = "2021"

[dependencies]
anyhow = "1.0.88"
cxx = { version = "1.0.128", features = ["c++20"] }

[build-dependencies]
cxx-build = "1.0.128"
miette = { version = "7.2.0", features = ["fancy"] }

[dev-dependencies]
35 changes: 35 additions & 0 deletions rust/libs/algorithms/qbg/build.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// Copyright (C) 2019-2024 vdaas.org vald team <[email protected]>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
fn main() -> miette::Result<()> {
let current_dir = std::env::current_dir().unwrap();
println!("cargo:rustc-link-search=native={}", current_dir.display());

cxx_build::bridge("src/lib.rs")
.file("src/input.cpp")
.flag_if_supported("-std=c++20")
.flag_if_supported("-fopenmp")
.flag_if_supported("-DNGT_BFLOAT_DISABLED")
.compile("qbg-rs");

println!("cargo:rustc-link-search=native=/usr/local/lib");
println!("cargo:rustc-link-lib=static=ngt");
println!("cargo:rustc-link-lib=blas");
println!("cargo:rustc-link-lib=lapack");
println!("cargo:rustc-link-lib=dylib=gomp");
println!("cargo:rerun-if-changed=src/*");

Ok(())
}
Loading

0 comments on commit 6de8a6a

Please sign in to comment.