<commit_before># Laser
# Copyright (c) 2018 <NAME>
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
# This file may not be copied, modified, or distributed except according to those terms.

import
  # ../../cpuinfo,
  ../../compiler_optim_hints, ../../openmp,
  ../../cpuinfo_x86,
  ./gemm_tiling, ./gemm_utils, ./gemm_packing,
  ./gemm_ukernel_dispatch

withCompilerOptimHints()

# ############################################################
#
#      Optimized GEMM (Generalized Matrix-Multiplication)
#
# ############################################################

# Features
#  - Arbitrary stride support
#  - Efficient implementation (within 90% of the speed of OpenBLAS, more tuning to expect)
#  - Parallel and scale linearly with number of cores
#
# Future
#  - Implementation extended to integers
#  - ARM Neon optimisation
#  - Small matrix multiply optimisation
#  - Pre-packing to when computing using the same matrix
#  - batched matrix multiplication

# Terminology
#   - M, Matrix: Both dimension are large or unknown
#   - P, Panel: one of the dimension is small<commit_msg>ARM - Fix #454<commit_after># Laser
# Copyright (c) 2018 <NAME>
# Distributed under the Apache v2 License (license terms are at http://www.apache.org/licenses/LICENSE-2.0).
# This file may not be copied, modified, or distributed except according to those terms.

import
  # ../../cpuinfo,
  ../../compiler_optim_hints, ../../openmp,
  ./gemm_tiling, ./gemm_utils, ./gemm_packing,
  ./gemm_ukernel_dispatch

when defined(i386) or defined(amd64):
  import ../../cpuinfo_x86

withCompilerOptimHints()

# ############################################################
#
#      Optimized GEMM (Generalized Matrix-Multiplication)
#
# ############################################################

# Features
#  - Arbitrary stride support
#  - Efficient implementation (within 90% of the speed of OpenBLAS, more tuning to expect)
#  - Parallel and scale linearly with number of cores
#
# Future
#  - Implementation extended to integers
#  - ARM Neon optimisation
#  - Small matrix multiply optimisation
#  - Pre-packing to when computing using the same matrix
#  - batched matrix multiplication

# Terminology
#   - M, Matrix: Both dimension are large or unknown
#   - P, Panel: one of the dimension is small
{'fraction_non_alphanumeric': 0.1974468085106383, 'fraction_numerical': 0.01276595744680851, 'mean_word_length': 3.991507430997877, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3865861', 'n_tokens_mistral': 699, 'n_tokens_neox': 650, 'n_words': 226}