Skip to main content

SYRK

A multi-backend implementation of the Symmetric Rank-K Update (SYRK) operation.

Overview

SYRK computes the symmetric rank-k update operation:

D = α × A × Aᵀ + β × C

Where:

  • A is an (N, K) input matrix
  • C is an optional (N, N) symmetric matrix
  • α and β are scalar coefficients
  • D is the (N, N) symmetric output matrix

Installation

# Basic installation
pip install .

# With Triton backend support
pip install ".[triton]"

# With all optional dependencies
pip install ".[all]"

Quick Start

import torch
from syrk import syrk

# Create input tensor (bfloat16 on CUDA)
a = torch.randn(1024, 512, dtype=torch.bfloat16, device='cuda')

# Compute A @ A^T
result = syrk(a)
print(result.shape)  # torch.Size([1024, 1024])

# With scaling factors
result = syrk(a, alpha=0.5)

# With additive term
c = torch.randn(1024, 1024, dtype=torch.bfloat16, device='cuda')
c = (c + c.T) / 2  # Make symmetric
result = syrk(a, c=c, alpha=1.0, beta=0.5)

API Reference

syrk(a, c=None, alpha=1.0, beta=0.0, skip_upper_triangle=False, backend=None)

Compute the Symmetric Rank-K Update operation.

Parameters:

  • a (torch.Tensor): Input tensor of shape (N, K). Must be bfloat16.
  • c (torch.Tensor, optional): Symmetric input tensor of shape (N, N). Required if beta != 0.
  • alpha (float): Scaling factor for the matrix multiplication. Default: 1.0.
  • beta (float): Scaling factor for the matrix addition. Default: 0.0.
  • skip_upper_triangle (bool): If True, only compute the lower triangle. Default: False.
  • backend (Backend, optional): The backend to use. Auto-selects if None.

Returns:

  • torch.Tensor: Output tensor of shape (N, N).

Backends

Triton Backend

The Triton backend provides a high-performance GPU implementation using NVIDIA's Triton compiler. It requires:

  • Triton >= 3.4.0 with TMA (Tensor Memory Accelerator) support
  • NVIDIA GPU with appropriate compute capability
from syrk import syrk
from syrk.backends import Backend, get_available_backends

# Check available backends
print(get_available_backends())  # [<Backend.TRITON: 'triton'>]

# Explicitly use Triton backend
result = syrk(a, backend=Backend.TRITON)

Requirements

  • Python >= 3.9
  • PyTorch >= 2.0.0
  • (Optional) Triton >= 3.4.0 for Triton backend

License

This project is licensed under the MIT License. See LICENSE for details.

The Triton backend implementation is based on code from NVIDIA Corporation, originally licensed under the Apache License 2.0.

Acknowledgments

  • NVIDIA Corporation for the original Triton SYRK implementation

Metadata

Release files for syrk 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for syrk 0.1.1
File Size Uploaded
syrk-0.1.1.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for syrk 0.1.1
File Interpreter ABI Platform
syrk-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 kB

Release files / syrk-0.1.1.tar.gz

Download URL syrk-0.1.1.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
52a8fa0580691a0208df99e047a06982ddd06b3bd9a8bf1c70d9d4a1bf79ddab
BLAKE2b-256 checksum
How to use checksums
f077f5b3386948fd47ff87775f87c3cb7428b19b2f4cbf2a5fc4a07fccf8897b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.

Transparency log

Release files / syrk-0.1.1-py3-none-any.whl

Download URL syrk-0.1.1-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5227d71d981222d5658b64a840bcfba20cfb179cf7cc5074dfd9c9b2bcda99a
BLAKE2b-256 checksum
How to use checksums
fc9b5c5902336781725837fa07b1367b73fbbebc9c808516c110c330bbdb858b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page