Unified Snap - #806
Conversation
There was a problem hiding this comment.
This is cool, but I really don't think it's all that useful, all somewhat recent CPUs have sha extensions, and without those I don't think the performance will be useful even for testing
There was a problem hiding this comment.
We got pushback when a make Curio's minimum AMD64v4 earlier this year, so we lowered it to V3 which lacks sha-ni.
There was a problem hiding this comment.
Is V3 == -march=zenver2 or are those kinda different?
| return hasAMD64v4 | ||
| } | ||
|
|
||
| func detectAMD64v4() { |
There was a problem hiding this comment.
@magik6k how should I detect "Zen-ish" for SupraPC1 ?
There was a problem hiding this comment.
Checking CPU support for SHA-NI should be good enough
|
Cannot proceed until the self-hosted runners get to Ubuntu 24.04 (currently 20.04 which was also referred to as "ubuntu-latest") |
d77abff to
27984aa
Compare
27984aa to
ec248bc
Compare
ce76fab to
ca7f08e
Compare
There was a problem hiding this comment.
Is V3 == -march=zenver2 or are those kinda different?
| // Include file reader implementation with renamed class to avoid conflict | ||
| #define streaming_node_reader_t streaming_node_reader_files_t | ||
| #include "../c1/streaming_node_reader_files.hpp" | ||
| #undef streaming_node_reader_t |
There was a problem hiding this comment.
This seems really extremely cursed
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
|
Merging into andyfastsnap so that there's just one branch to work on |
| if [ -n "${LD_LIBRARY_PATH}" ]; then | ||
| LD_LIB_PATH="$LD_LIB_PATH:${LD_LIBRARY_PATH}" | ||
| LIB_PATH="$LIB_PATH:${LIBRARY_PATH}" | ||
| fi |
There was a problem hiding this comment.
Bug: Mismatched environment variable check causes incorrect library paths
The condition on line 165 checks if LD_LIBRARY_PATH is non-empty, but line 167 unconditionally appends ${LIBRARY_PATH} (a different environment variable) to LIB_PATH. These are two distinct environment variables (LD_LIBRARY_PATH for runtime linking, LIBRARY_PATH for compile-time linking). If LD_LIBRARY_PATH is set but LIBRARY_PATH is unset, this appends an empty value causing a trailing colon in the path. Conversely, if LIBRARY_PATH is set but LD_LIBRARY_PATH is not, the value never gets appended. Each variable needs its own separate check.
* supra: file tree_r ffi * wire up treerfile to go * supra: using the correct node reader in file tree_r ffi * tree_r links * redefs, it works * missing test-supra cmd * fast snap encode * encode-snap test * wire up fast-snap * make gen * encode works * fix: yield in PSClientPoll correctly * faster webui history * pspoll: Don't timeout the context * fix EpochPretty ddos * more robust dealdata * robusthttp metrics * enable is done this way round * pshare: prio snap * encode bind to data * make gen * piecepark node dl limit * only park pieces locally when supra P2 isn't running * fix commp canaccept * fix build * fix commp canaccept storage query * aaaargh * prevent dupe piece park task * expose piecepark min free pct * Do snap falloc * Cache storage info in localstorage.Local calls for a bit * MoveStorage / UpgradeStore param tweaks * snap key no read * snap: Parallel movestorage * snap mertics, ui fix * missing snap metrics * fix snap batch backoff * somewhat handle snap msg fails on immutable deadline * fix snap retry query params * storage: Copy over snap vproof * treeR file deadline * slower retry movestorage * ipni: Handle orphan tasks * ipni: Accept orphans * f05 bmgr * f05 bmgr fixes * fix f05 bm build * make gen * missing fixes postrebase * fix: proofshare: Fix client payment chain bootstrap * feat: test post cli: Vanilla Proof test command * supra: live duration-so-far metric * webui: Content page * fix: Make kubo retrievals work (#724) * fix(retrieval): handle pathed IPFS retrieval style, add basic retrieval tests (#720) * ipni: Announce addresses with port * update lotus * make gen --------- Co-authored-by: Rod Vagg <rod@vagg.org> * add more caches * more metrics, less log spam * http method in req stats * http metric for in-flight requests * remotebs: return correct err on not-found * limit parallel retrievals * separate head req limiter * fix race condition that resulted in ignoring the last bit of cached data. * merge iffy * gen * lint and tests * old linter making mistakes * linty * fixes * oops * agent review fixes * cuda13 capable ffi * supra: allow passing march flag * Unified Snap (#806) * build * 2 * 3 * build gotchas * right shape * requirements include cuda * get build fixed * cuda for everyone * add golang for ci * stop deleting my stuff * try with gcc flag * auto-nvme-setup opt-out * ci build fix attempt * fix outdated base image * gofmt, flag- no avx512bf16 * try cuda setup * do like working job * try without cuda * try cude in install-deps * cuda info in github env * make spdk happy * deps * gcc12 * ubuntu-latest is not 2404 but 2004 * ci: missing deps, fix ubuntus * supra: rm mbx wrapper, fix poseidon constants wait, native default arch * review fixes --------- Co-authored-by: Łukasz Magiera <magik6k@gmail.com> * version and dep * dl v1 * missing market miners onchange initial setup * test supra system-info command * supra: add missing pc2_hash_files template instantiations * supra: correct -march in pc2.cu to make blst not segfault * cache supraseal * fix: storage: Make declare usably fast * sectormetadata: Recheck partition presence * debug expmgr * expmgr: Never try to extend dead sectors * use our runners * Trying to fix CI * fixing CI * indexing: gracefully handle no-unsealed-copy pieces * solve CI lint errors * CI cleanups * CI: export regex * test_env_vars * cgo fix * paux in fallback flow * gen * cuda probe without nvcc * env to disable snap supra * fix generic crosscompile, explicit native target * gcc 13 for supra * supra docs * address review * fix itests --------- Co-authored-by: Łukasz Magiera <magik6k@gmail.com> Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com> Co-authored-by: Rod Vagg <rod@vagg.org>
This addition to the fast snap mainline modifies supraseal:
This should make fastsnap the only path needed for Curio.
Cases
old libfilecoin-ffi snap:
Use supraseal fastsnap:
Use supraseal PC1:
DEBs to cover all cases:
Note
Unifies SupraSeal snap path with CPU/GPU fallback, adds a
curio batch setupSPDK command, refactors/builds the SupraSeal library, and overhauls CI/Docker to Ubuntu 24.04 with GCC 12 and CUDA.libsupraseal.a(no tool binaries in CI).filecoin-ffiwhen unsupported.delete[]) inc1/challenge.hpp.curio batch setupto auto-configure SPDK (hugepages, NVMe binding).DISABLE_SPDK_SETUPenv.lib/supraffi,ffidirect):GOAMD64=v3; removes legacy batch targets.ubuntu-24.04, replaces custom Go action, sets GCC 12 via alternatives.libgmp-dev,libconfig++-dev), switches build instructions tomake curio/sptool.curio batch setupand new env var in EN/ZN SupraSeal guides.Written by Cursor Bugbot for commit 23c6b6a. This will update automatically on new commits. Configure here.