{"adoption": {"forks": 162, "observed_at": "2026-08-28T04:03:36.257100+00:00", "stars": 1104}, "canonical_url": "https://ross.abutalabs.com/products/pytorch_sparse", "card": {"archived": false, "artifact_type": "library", "description": "PyTorch Extension Library of Optimized Autograd Sparse Matrix Operations", "domain": ["machine-learning", "deep-learning"], "enriched": true, "function": ["machine-learning", "gpu-computing", "math"], "health_score": 74, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["rusty1s/pytorch_sparse"], "name": "rusty1s/pytorch_sparse", "platform": ["python", "windows"], "pushed_at": "2026-06-03T04:07:55+00:00", "repo": "rusty1s/pytorch_sparse", "stars": 1104, "tags": ["pytorch", "sparse-matrices", "autograd", "cuda", "extension-library", "graph-neural-networks", "algorithms", "linux", "macos", "gpu"], "topics": ["pytorch", "sparse", "sparse-matrices", "autograd"], "urls": [], "use_cases": ["multiply sparse and dense matrices in pytorch with gradients", "speed up sparse matrix ops on gpu for gnn training", "transpose large sparse tensors efficiently", "coalesce sparse tensor indices and values", "avoid building torch.sparse_coo_tensor manually", "sparse matrix multiplication with autograd support"], "what_it_is": "A PyTorch extension library providing optimized sparse matrix operations (coalesce, transpose, sparse-dense and sparse-sparse multiplication) with autograd support. Operations work on CPU and GPU across varying data types and use index/value tensors instead of torch.sparse_coo_tensor.", "when_to_avoid": ["you only need basic sparse tensors already covered by native torch.sparse", "you work outside the PyTorch ecosystem (e.g. TensorFlow, JAX, SciPy)", "you need sparse operations on indices with gradients, since index tensors are not differentiable"], "when_to_choose": ["you need differentiable sparse matrix operations in PyTorch on CPU or GPU", "you are building graph neural networks with PyTorch Geometric", "you want optimized CUDA kernels for sparse-dense and sparse-sparse matmul"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pytorch_sparse", "repo": "rusty1s/pytorch_sparse", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:36.257100+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:45:29.451149+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d899a5f60cf00cae4888b21a8aa5c5ad1862761bd4f436a6e786d390a1253dde", "fetched_at": "2026-08-28T04:03:36.257100+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rusty1s/pytorch_sparse"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2958, "days_push": 91, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}