{"id":20146581,"url":"https://github.com/brosnanyuen/raybnn_sparse","last_synced_at":"2026-01-19T22:32:05.603Z","repository":{"id":192730506,"uuid":"687289766","full_name":"BrosnanYuen/RayBNN_Sparse","owner":"BrosnanYuen","description":"Sparse Matrix Library for GPUs, CPUs, and FPGAs via CUDA, OpenCL, and oneAPI","archived":false,"fork":false,"pushed_at":"2024-06-18T05:49:20.000Z","size":107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T15:14:33.365Z","etag":null,"topics":["arrayfire","cpu","cuda","gpu","gpu-computing","opencl","parallel","parallel-computing","parallel-programming","raybnn","rust","sparse","sparse-coding","sparse-matrix","sparse-neural-networks"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrosnanYuen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-05T03:51:25.000Z","updated_at":"2024-06-18T05:49:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"d67f910c-3f49-435e-98b4-91f69b974ceb","html_url":"https://github.com/BrosnanYuen/RayBNN_Sparse","commit_stats":{"total_commits":141,"total_committers":2,"mean_commits":70.5,"dds":0.007092198581560294,"last_synced_commit":"ff96accf2a55c0172a53ccfe7c3d62d9a5d6c519"},"previous_names":["brosnanyuen/raybnn_sparse"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrosnanYuen%2FRayBNN_Sparse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrosnanYuen%2FRayBNN_Sparse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrosnanYuen%2FRayBNN_Sparse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrosnanYuen%2FRayBNN_Sparse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrosnanYuen","download_url":"https://codeload.github.com/BrosnanYuen/RayBNN_Sparse/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247650924,"owners_count":20973352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arrayfire","cpu","cuda","gpu","gpu-computing","opencl","parallel","parallel-computing","parallel-programming","raybnn","rust","sparse","sparse-coding","sparse-matrix","sparse-neural-networks"],"created_at":"2024-11-13T22:24:22.502Z","updated_at":"2026-01-19T22:32:05.549Z","avatar_url":"https://github.com/BrosnanYuen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RayBNN_Sparse\nSparse Matrix Library for GPUs, CPUs, and FPGAs via CUDA, OpenCL, and oneAPI \n\nSupports CSR, COO, CSC, and block sparse matrices\n\nRequires Arrayfire and Arrayfire Rust\n\nSupports f16, f32, f64, Complexf16, Complexf32, Complexf64\n\n# Install Arrayfire\n\nInstall the Arrayfire 3.9.0 binaries at [https://arrayfire.com/binaries/](https://arrayfire.com/binaries/)\n\nor build from source\n[https://github.com/arrayfire/arrayfire/wiki/Getting-ArrayFire](https://github.com/arrayfire/arrayfire/wiki/Getting-ArrayFire)\n\n\n# Add to your Cargo.toml\n```\narrayfire = { version = \"3.8.1\", package = \"arrayfire_fork\" }\nnum = \"0.4.1\"\nnum-traits = \"0.2.16\"\nhalf = { version = \"2.3.1\" , features = [\"num-traits\"] }\nRayBNN_Sparse = \"2.0.2\"\n```\n\n\n\n# List of Examples\n\n\n# Convert COO to CSR Sparse Matrix\n\n```\nlet mut WRowIdxCSR = RayBNN_Sparse::Util::Convert::COO_to_CSR(\u0026WRowIdxCOO,7);\n```\n\n# Convert CSR to COO Sparse Matrix\n```\nlet mut WRowIdxCOO = RayBNN_Sparse::Util::Convert::CSR_to_COO(\u0026WRowIdxCSR);\n```\n\n# Search COO Matrix for value\n```\nlet valsel = RayBNN_Sparse::Util::Search::COO_find(\u0026WRowIdxCOO,\u0026idxsel);\n```\n\n\n# Batch Search COO Matrix for value\n```\nlet valsel = RayBNN_Sparse::Util::Search::COO_batch_find(\u0026WRowIdxCOO,\u0026idxsel,4);\n```\n\n# Get global index\n```\nlet global_idx = RayBNN_Sparse::Util::Convert::get_global_weight_idx(\n    2000, \n    \u0026WRowIdxCOO, \n    \u0026WColIdx\n);\n```\n\n# Get global index 2\n```\nlet global_idx = RayBNN_Sparse::Util::Convert::get_global_weight_idx2(\n    2000, \n    \u0026WRowIdxCOO, \n    \u0026WColIdx\n);\n```\n\n\n# Clear inputs to weighted adjancency matrix\n```\nRayBNN_Sparse::Util::Remove::clear_input::\u003cf32\u003e(\n    \u0026mut WValues,\n    \u0026mut WRowIdxCOO,\n    \u0026mut WColIdx,\n    3\n);\n```\n\n\n# Clear output of the weighted adjancency matrix\n```\nRayBNN_Sparse::Util::Remove::clear_output::\u003cf32\u003e(\n    \u0026mut WValues,\n    \u0026mut WRowIdxCOO,\n    \u0026mut WColIdx,\n    7-2\n);\n```\n\n\n# Clear input to hidden neurons of the weighted adjancency matrix\n```\nRayBNN_Sparse::Util::Remove::clear_input_to_hidden::\u003cf64\u003e(\n    \u0026mut WValues,\n    \u0026mut WRowIdxCOO,\n    \u0026mut WColIdx,\n    3\n);\n```\n\n\n# Delete the smallest weights in the weighted adjancency matrix\n```\nRayBNN_Sparse::Util::Remove::delete_smallest_weights::\u003cf32\u003e(\n    \u0026mut WValues,\n    \u0026mut WRowIdxCOO,\n    \u0026mut WColIdx,\n    3\n);\n```\n\n\n# Delete the smallest weights with a random probability in the weighted adjancency matrix\n```\nRayBNN_Sparse::Util::Remove::delete_weights_with_prob::\u003cf64\u003e(\n    \u0026mut WValues,\n    \u0026mut WRowIdxCOO,\n    \u0026mut WColIdx,\n    3\n);\n```\n\n\n\n# Remap rows in  weighted adjancency matrix\n```\nlet valsel = RayBNN_Sparse::Util::Convert::remap_rows(\u0026dictionary, \u0026idx,1000);\n```\n\n\n# Block Matrix Multiplication\n```\nRayBNN_Sparse::Matrix::Block::matmul::\u003cf64\u003e(\n\t\u0026input_start,\n    \u0026input_end,\n\n    \u0026block_start,\n    \u0026block_end,\n\n\n    \u0026input,\n    \u0026block\n);\n```\n\n\n# Transpose Block Matrix Multiplication\n```\nRayBNN_Sparse::Matrix::Block::trans_matmul::\u003cf64\u003e(\n\t\u0026input_start,\n    \u0026input_end,\n\n    \u0026block_start,\n    \u0026block_end,\n\n\n    \u0026input,\n    \u0026block\n);\n```\n\n\n\n\n\n\n# Parallel lookup of Arrays\n```\nlet result =  RayBNN_Sparse::Util::Search::parallel_lookup(\n    0,\n    1,\n\n    \u0026idx_arr,\n    \u0026test_arr,\n);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrosnanyuen%2Fraybnn_sparse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrosnanyuen%2Fraybnn_sparse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrosnanyuen%2Fraybnn_sparse/lists"}