metakernel / torch-ext /torch_binding.h
phanerozoic's picture
metakernel v1: device dossier, throttle-rejected bench, ULP compare, fuzz, sweep, stamps
0c6aadc verified
Raw
History Blame
1.56 kB
#pragma once
#include <torch/torch.h>
void mk_triad(torch::Tensor a, torch::Tensor b, torch::Tensor c,
int64_t width, double s);
void mk_triad_passes(torch::Tensor a, torch::Tensor b, torch::Tensor c,
double s, int64_t passes);
void mk_read(torch::Tensor a, torch::Tensor sink);
void mk_write(torch::Tensor c, double v);
void mk_gather(torch::Tensor a, torch::Tensor idx, torch::Tensor c,
int64_t threads, int64_t dyn_smem);
void mk_fma_f64(int64_t blocks, int64_t threads, int64_t iters,
torch::Tensor sink);
void mk_fma_dep(int64_t blocks, int64_t threads, int64_t dyn_smem,
int64_t iters, torch::Tensor sink);
void mk_chase_global(torch::Tensor ring, int64_t hops, torch::Tensor out);
void mk_chase_shared(torch::Tensor ring, int64_t hops, torch::Tensor out);
void mk_fma_f32(int64_t blocks, int64_t threads, int64_t iters,
torch::Tensor sink);
int64_t mk_mma(int64_t kind, int64_t blocks, int64_t warps, int64_t iters,
torch::Tensor sink);
void mk_atomics(int64_t mode, int64_t blocks, int64_t threads, int64_t iters,
torch::Tensor buf, int64_t slots);
void mk_spin(int64_t blocks, int64_t threads, int64_t ticks,
torch::Tensor out, torch::Tensor sink);
void mk_empty(torch::Tensor device_anchor);
int64_t mk_barrier(int64_t blocks, int64_t threads, int64_t iters,
torch::Tensor out);
int64_t mk_occupancy(int64_t threads, int64_t dyn_smem,
torch::Tensor device_anchor);