Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions backends/vulkan/op_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ def register_softmax_cpp_ops():


# =============================================================================
# MatMul.cpp
# gemm/matmul/MatMul.cpp
# =============================================================================


Expand All @@ -437,7 +437,7 @@ def register_matmul_cpp_ops():


# =============================================================================
# Linear.cpp
# gemm/linear/Linear.cpp
# =============================================================================


Expand All @@ -457,7 +457,7 @@ def register_linear_cpp_ops():


# =============================================================================
# QuantizedLinearQCSNW.cpp
# gemm/linear/qw/{q8csw,legacy}/*.cpp
# =============================================================================


Expand All @@ -477,7 +477,7 @@ def register_quantizedlinearqcsnw_cpp_ops():


# =============================================================================
# QuantizedLinear.cpp
# gemm/linear/qw/{q4gsw,dq8ca_q4gsw,legacy}/**/*.cpp
# =============================================================================


Expand Down Expand Up @@ -1092,7 +1092,7 @@ def register_q8ta_conv2d_transposed_op():


# =============================================================================
# Q8taLinear.cpp
# gemm/linear/q8ta/Q8taLinear.cpp
# =============================================================================


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#extension GL_EXT_control_flow_attributes : require

#include "linear_fp_input_tile.glslh"
#include "gemm/tile_utils/linear_fp_input_tile.glslh"

VEC4_T load_fp_input_texel(const Conv2dTensorIndex tidx) {
#ifdef INPUT_BUFFER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ layout(push_constant) uniform restrict Block {

layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "linear_fp_input_tile.glslh"
#include "linear_fp_weight_tile.glslh"
#include "linear_fp_output_tile.glslh"
#include "linear_fp_packed_weight_tile_load.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "gemm/tile_utils/linear_fp_input_tile.glslh"
#include "gemm/tile_utils/linear_fp_weight_tile.glslh"
#include "gemm/tile_utils/linear_fp_output_tile.glslh"
#include "gemm/tile_utils/linear_fp_packed_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_fp_compute.glslh"

// Conv1d pointwise is matrix multiplication with swapped texture coordinates.
// Linear: input ivec3(k4, m, b), output ivec3(n4, m, b) [width-packed]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;
${layout_declare_spec_const(C, "int", "stride_1_padding_0", "0")}
${layout_declare_spec_const(C, "int", "activation_type", "0")}

#include "linear_fp_input_tile.glslh"
#include "linear_fp_packed_weight_tile_load.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "gemm/tile_utils/linear_fp_input_tile.glslh"
#include "gemm/tile_utils/linear_fp_packed_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_fp_compute.glslh"

// Texel coordinates for the TILE_M spatial positions this invocation covers.
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,9 @@ layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

${layout_declare_spec_const(C, "int", "activation_type", "0")}

#include "linear_fp_input_tile.glslh"
#include "linear_fp_packed_weight_tile_load.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "gemm/tile_utils/linear_fp_input_tile.glslh"
#include "gemm/tile_utils/linear_fp_packed_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_fp_compute.glslh"

/*
* Load TILE_M rows × TILE_K4 K-tiles of the im2col'd input.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#include "indexing.glslh"
#include "conv2d_common.glslh"
#include "conv2d_fp_im2col_block.glslh"
#include "linear_fp_input_tile.glslh"
#include "gemm/tile_utils/linear_fp_input_tile.glslh"

VEC4_T load_input_texel(const TensorIndex4D tidx) {
// Assumes batch size is 1 and channels packing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "indexing.glslh"
#include "conv2d_common.glslh"
#include "conv2d_fp_im2col_block.glslh"
#include "linear_fp_output_tile.glslh"
#include "gemm/tile_utils/linear_fp_output_tile.glslh"

// TODO: implement buffer support
void write_output_texel(const VEC4_T out_texel, const TensorIndex4D tidx) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#extension GL_EXT_control_flow_attributes : require

#include "linear_int8_input_tile.glslh"
#include "gemm/tile_utils/linear_int8_input_tile.glslh"

struct Int8InputTileIndex {
#ifdef PACKED_INT8_INPUT_BUFFER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#extension GL_EXT_control_flow_attributes : require

#include "conv2d_common.glslh"
#include "linear_int8_output_tile.glslh"
#include "gemm/tile_utils/linear_int8_output_tile.glslh"

void store_packed_int8_output_tile(
const Int8OutTile int8_tile,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ ${layout_declare_spec_const(C, "int", "conv2d_params_groups", "1")}


#include "conv2d_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "linear_int8_output_tile_compute.glslh"
#include "gemm/tile_utils/linear_int8_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "gemm/tile_utils/linear_int_weight_sums_load.glslh"
#include "gemm/tile_utils/linear_fp_weight_scales_load.glslh"
#include "gemm/tile_utils/linear_fp_bias_load.glslh"
#include "gemm/tile_utils/linear_int8_output_tile_compute.glslh"
#include "conv2d_int8_output_tile_store.glslh"

void main() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#extension GL_EXT_control_flow_attributes : require
#extension GL_EXT_integer_dot_product : require

#include "linear_int_accumulator.glslh"
#include "gemm/tile_utils/linear_int_accumulator.glslh"

struct Int8InputWindow1D {
int[MAX_WINDOW_WIDTH] data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ ${layout_declare_spec_const(C, "int", "conv2d_params_logical_K_per_group", "1")}
${layout_declare_spec_const(C, "int", "conv2d_params_groups", "1")}


#include "linear_fp_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "linear_fp_output_tile_fp_int8_compute.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "gemm/tile_utils/linear_fp_input_tile_load.glslh"
#include "gemm/tile_utils/linear_int8_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_weight_scales_load.glslh"
#include "gemm/tile_utils/linear_fp_bias_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_fp_int8_compute.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_fp_compute.glslh"
#include "conv2d_fp_im2col_block_store.glslh"

void main() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ ${layout_declare_spec_const(C, "int", "conv2d_params_logical_K_per_group", "1")}
${layout_declare_spec_const(C, "int", "conv2d_params_groups", "1")}


#include "linear_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_fp_bias_load.glslh"
#include "gemm/tile_utils/linear_int8_input_tile_load.glslh"
#include "gemm/tile_utils/linear_int8_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_int_weight_sums_load.glslh"
#include "gemm/tile_utils/linear_fp_weight_scales_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "gemm/tile_utils/linear_fp_bias_load.glslh"
#include "conv2d_fp_im2col_block_store.glslh"

void main() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@ ${layout_declare_spec_const(C, "int", "conv2d_params_groups", "1")}

#include "im2col_packed_int8_utils.glslh"
#include "conv2d_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "linear_int8_output_tile_compute.glslh"
#include "gemm/tile_utils/linear_int8_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "gemm/tile_utils/linear_int_weight_sums_load.glslh"
#include "gemm/tile_utils/linear_fp_weight_scales_load.glslh"
#include "gemm/tile_utils/linear_fp_bias_load.glslh"
#include "gemm/tile_utils/linear_int8_output_tile_compute.glslh"
#include "conv2d_int8_output_tile_store.glslh"

#include "conv2d_q8_utils.glslh"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ ${layout_declare_spec_const(C, "int", "conv2d_params_groups", "1")}


#include "conv2d_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "linear_int8_output_tile_compute.glslh"
#include "gemm/tile_utils/linear_int8_weight_tile_load.glslh"
#include "gemm/tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "gemm/tile_utils/linear_int_weight_sums_load.glslh"
#include "gemm/tile_utils/linear_fp_weight_scales_load.glslh"
#include "gemm/tile_utils/linear_fp_bias_load.glslh"
#include "gemm/tile_utils/linear_int8_output_tile_compute.glslh"
#include "conv2d_int8_output_tile_store.glslh"

void main() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ layout(push_constant) uniform restrict Block {
layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "conv2d_fp_im2col_block_load.glslh"
#include "linear_int8_input_block.glslh"
#include "gemm/tile_utils/linear_int8_input_block.glslh"

void main() {
// The quantized and packed im2col matrix can be conceptualized as a 2D matrix
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ $else:

layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "matmul_fp_mat1_tile_load.glslh"
#include "linear_fp_packed_weight_tile_load.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "matmul_fp_out_tile_store.glslh"
#include "matmul_fp_bias_apply.glslh"
#include "tile_utils/matmul_fp_mat1_tile_load.glslh"
#include "tile_utils/linear_fp_packed_weight_tile_load.glslh"
#include "tile_utils/linear_fp_output_tile_fp_compute.glslh"
#include "tile_utils/matmul_fp_out_tile_store.glslh"
#include "tile_utils/matmul_fp_bias_apply.glslh"

void main() {
const int tile_idx_n = int(gl_GlobalInvocationID.x);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ $else:

layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "matmul_fp_mat1_tile_load.glslh"
#include "linear_fp_packed_weight_tile_load.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "matmul_fp_out_tile_store.glslh"
#include "matmul_fp_bias_apply.glslh"
#include "tile_utils/matmul_fp_mat1_tile_load.glslh"
#include "tile_utils/linear_fp_packed_weight_tile_load.glslh"
#include "tile_utils/linear_fp_output_tile_fp_compute.glslh"
#include "tile_utils/matmul_fp_out_tile_store.glslh"
#include "tile_utils/matmul_fp_bias_apply.glslh"

void main() {
const int tile_idx_n = int(gl_GlobalInvocationID.x);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,12 @@ layout(push_constant) uniform restrict Block {
layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "common.glslh"
#include "linear_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "tile_utils/linear_int8_input_tile_load.glslh"
#include "tile_utils/linear_int8_weight_tile_load.glslh"
#include "tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "tile_utils/linear_fp_weight_scales_load.glslh"
#include "tile_utils/linear_int_weight_sums_load.glslh"
#include "tile_utils/linear_fp_bias_load.glslh"

void main() {
const int out_tile_x = int(gl_GlobalInvocationID.x);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;
#include "dispatch.glslh"

#include "common.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "tile_utils/linear_int8_weight_tile_load.glslh"
#include "tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "tile_utils/linear_fp_weight_scales_load.glslh"
#include "tile_utils/linear_int_weight_sums_load.glslh"
#include "tile_utils/linear_fp_bias_load.glslh"

// Array-of-arrays shared memory layout: partial_accums[lid][tile_n4].
// Each element is exactly 16 bytes (ivec4). This avoids the Samsung S25
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,19 @@ layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;
${layout_declare_spec_const(C, "int", "apply_bias", "0")}
${layout_declare_spec_const(C, "int", "K4_per_group", "0")}

#include "linear_fp_input_tile_load.glslh"
#include "linear_int8_input_tile_load.glslh"
#include "linear_int8_input_scales_zps_load.glslh"
#include "linear_int4_weight_tile_load.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_int8_input_sums_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_fp_output_tile_int8_int4_compute.glslh"
#include "linear_fp_output_tile_fp_int4_compute.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "linear_fp_output_tile_store.glslh"
#include "linear_fp_bias_load.glslh"
#include "tile_utils/linear_fp_input_tile_load.glslh"
#include "tile_utils/linear_int8_input_tile_load.glslh"
#include "tile_utils/linear_int8_input_scales_zps_load.glslh"
#include "tile_utils/linear_int4_weight_tile_load.glslh"
#include "tile_utils/linear_int_weight_sums_load.glslh"
#include "tile_utils/linear_fp_weight_scales_load.glslh"
#include "tile_utils/linear_int8_input_sums_load.glslh"
#include "tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "tile_utils/linear_fp_output_tile_int8_int4_compute.glslh"
#include "tile_utils/linear_fp_output_tile_fp_int4_compute.glslh"
#include "tile_utils/linear_fp_output_tile_fp_compute.glslh"
#include "tile_utils/linear_fp_output_tile_store.glslh"
#include "tile_utils/linear_fp_bias_load.glslh"

void main() {
const int out_tile_x = int(gl_GlobalInvocationID.x);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ layout(push_constant) uniform restrict Block {

layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "linear_int8_input_tile_load.glslh"
#include "linear_int8_weight_tile_load.glslh"
#include "linear_fp_output_tile_int8_int8_compute.glslh"
#include "linear_fp_output_tile_store.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_int_weight_sums_load.glslh"
#include "linear_fp_bias_load.glslh"
#include "tile_utils/linear_int8_input_tile_load.glslh"
#include "tile_utils/linear_int8_weight_tile_load.glslh"
#include "tile_utils/linear_fp_output_tile_int8_int8_compute.glslh"
#include "tile_utils/linear_fp_output_tile_store.glslh"
#include "tile_utils/linear_fp_weight_scales_load.glslh"
#include "tile_utils/linear_int_weight_sums_load.glslh"
#include "tile_utils/linear_fp_bias_load.glslh"

void main() {
// Each thread writes out a 4 wide x 4 high tile of output values
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ layout(push_constant) uniform restrict Block {
layout(local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in;

#include "common.glslh"
#include "linear_int8_weight_block.glslh"
#include "tile_utils/linear_int8_weight_block.glslh"

void main() {
// The size of the source weight tensor is [W=K, H=N]. Each shader invocation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,13 @@ ${layout_declare_spec_const(C, "int", "apply_bias", "0")}
${layout_declare_spec_const(C, "int", "K4_per_group", "0")}

#include "common.glslh"
#include "linear_fp_input_tile_load.glslh"
#include "linear_int4_weight_tile_load.glslh"
#include "linear_fp_weight_scales_load.glslh"
#include "linear_fp_output_tile_fp_int4_compute.glslh"
#include "linear_fp_output_tile_fp_compute.glslh"
#include "linear_fp_output_tile_store.glslh"
#include "linear_fp_bias_load.glslh"
#include "tile_utils/linear_fp_input_tile_load.glslh"
#include "tile_utils/linear_int4_weight_tile_load.glslh"
#include "tile_utils/linear_fp_weight_scales_load.glslh"
#include "tile_utils/linear_fp_output_tile_fp_int4_compute.glslh"
#include "tile_utils/linear_fp_output_tile_fp_compute.glslh"
#include "tile_utils/linear_fp_output_tile_store.glslh"
#include "tile_utils/linear_fp_bias_load.glslh"

shared FPOutTile partial_sums[WGS];

Expand Down
Loading
Loading