GNUS.AI
  • 🧠About GNUS.AI
    • GNUS.AI
    • Introduction
    • Features and Benefits
      • Scale and cost-efficiency
      • GNUS.ai Network vs. Centralized xAI 100k Cluster
        • 1. Executive Summary
        • 2. Introduction
        • 3. Understanding the GNUS.ai Decentralized Network
        • 4. The Centralized xAI 100k Cluster Explained
        • 5. Comparing CAPEX and OPEX
        • 6. Payout Structure and Profitability
        • 7. The Deflationary Token Mechanism
        • 8. Projected Token Price Appreciation
        • 9. Summary Comparison Tables
        • 10. Conclusion and Next Steps
        • Final Thoughts
      • Tokenomics
    • Public Roadmap
    • Whitepaper
    • Meet the Team
    • Why GNUS.AI
      • Works Everywhere
      • Customizable
      • Fast
      • Secure
        • Secure 2FA with TOTP and zk-SNARKs
    • How Does It Work?
      • Idle Central Processing (GPU)
      • Distributed Computation
      • Dynamically Adjusted Resource Allocation
  • 🖥️Technical Information
    • Super Genius Blockchain Technical Details
      • SuperGenius DB Layout
      • AI Data Blocks
      • Slicing Data for Macro MicroJobs
      • Verification and Hash Results from Processing
      • Diagram of the internal blockchain, blocks and processing functionality
      • IPFS Pub Sub
      • SG Consensus Algorithm Implementation
      • Account creation with ECSDA and El Gamal
      • Key Derivation Function
      • El Gamal encryption
      • Prover specification
      • C++ Coding Standards
      • SuperGenius processing component information
        • Processing worker app workflow
        • Job Processing Flow
      • Super Genius DAG Blockchain
      • Minimal MMR Proof System with UTXOs
      • Cross-chain Bridging through SuperGenius
        • Overview of Technical Details for Cross-Chain Bridging Flow
        • Message Creation and Leader Election
        • Leader Ownership and Verification Channel Creation
        • Node Verification and Voting
        • Signature Collection and Aggregation
        • Destination Chain Submission and Validation
    • Hybrid Smart Contract
      • GNUS.ai Ecosystem: A Unified Network of Intelligence
      • Structure
        • Structure Details
      • Encoded IDs
    • Our Smart Contract Testing Philosophy
    • AI Systems
      • Overview
      • Query Workflow
      • Data Storage
      • Pub/Sub Communication
      • Retraining Mechanism
    • Zero Knowledge Proofs
      • Proof schemes and Elliptical Curves
  • Resources
    • Contact Us
    • Contracts
    • FAQS
    • Multisig Wallets
    • Glossary
    • Official Links
Powered by GitBook
On this page
  • AI Processing Data blocks pulled from ipfs via IPFS CID/UUID
  • Job Data Structure.
  • Chunk (Macro & Micro Job) Data Structure
  • Access Patterns of the Chunk/Blocks of Data
  1. Technical Information
  2. Super Genius Blockchain Technical Details

AI Data Blocks

PreviousSuperGenius DB LayoutNextSlicing Data for Macro MicroJobs

Last updated 1 year ago

AI Processing Data blocks pulled from ipfs via IPFS CID/UUID

Chunk processing is similar to how jpeg blocks are processed but block size can be anything 4x4, 8x8, 12x16, etc.

It also is very similar to how a GPU handles tiling.

Job Data Structure.

(Picture of Soccer Player in Picture Above)

typedef struct _JOB {
  IPFSCID ipfsBlock;             // source block data to be processed
  IPFSCID ipfsProgramBlock;      // can be an array 
  unsigned long BlockLen;        // and ipfs block's length in bytes
  unsigned long BlockStride;     // Stride to use for access pattern
  unsigned long BlockLineStride; // Line stride in bytes to get to next block start
  float randomSeed;              // used to randomly choose verifier block
  UUID resultsChannelUUID;       // results written to CRDT database unique ID (/blockchain/{BlockChainID}/{resultsChannelUUID}/{MacroJobUUID}/{MicrojobUUID}
} JOB;

Chunk (Macro & Micro Job) Data Structure

(Macro -> Grid in picture Block-n, Block m are Macro jobs, AC01, AC07 & Tiles in second picture are Microjobs)

typedef struct PROCESSCHUNK {
  IPFSCID dataChunkID;            // the UUID of the data chunk to be processed
  IFPSCID programChunkID;         // the UUID of the program to run on the data (ipfs CID)
  unsigned long Offset;           // offset into data
  unsigned long SubChunkWidth;    // width of subchunk/subblock
  unsigned long SubChunkHeight;   // height of chunk/block
  unsigned long Stride;           // stride to use for overall data chunk
  unsigned long LineStride;       // stride of one line of data
  unsigned long nSubChunks;       // number of chunks to process (this breaks down into microjobs) 
  UUID chunkUUID;                 // the macro/micro job id to use for writing results
} PROCESSCHUNK;

Access Patterns of the Chunk/Blocks of Data

The block stride is the number of bytes to get you to the next block.

  • if block stride = width of block in bytes, then processing of blocks source the blocks horizontally.

  • if block stride = line width of data * height of block, then processing of blocks source the blocks vertically

  • Other access patterns can be achieved

    • for instance if block stride = 2 * width of data * height of block, then processing of blocks will source every 2nd block in the horizontal direction

Those parameters allow you sample in any pattern. Blocks could be top to bottom in a column, you can sample in a row or even diagonally given block stride value

The line stride is the number of bytes to get you to the next line in the block (usually the width of the data).

The block width is the number of bytes in single line of a block. Height of the block is the number of lines of the block.

Offset is starting byte position of ipfs data.

🖥️
GPU-Tiling