<commit_before>#ifndef GUARD_MIOPEN_GEMM_GEOMETRY_HPP_
#define GUARD_MIOPEN_GEMM_GEOMETRY_HPP_

#include <tinygemm/tinygemm.hpp>
#include <miopen/tensor.hpp>
#include <miopen/kernel_cache.hpp>

namespace miopen {

using tinygemm::TinyGemmGeometry;
using tinygemm::TinyGemmSolution;

struct GemmGeometry {
    std::array<int, 3> dims{}; // m, n, k
    std::array<int, 3> strides{}; // lda, ldb, ldc
    std::string algorithm_name;
    float alpha{};
    float beta{};
    TinyGemmGeometry tgg {};
    bool beta_kern_req{};
    std::array<int, 2> beta_kern_args{};

    GemmGeometry(){}
    GemmGeometry(std::array<int, 3> pdims, std::array<int, 3>pstrides, std::string algo_name, float palpha, float pbeta, TinyGemmGeometry ptgg) : 
        dims(pdims), strides(pstrides), algorithm_name(algo_name), alpha(palpha), beta(pbeta), tgg(ptgg) 
    {
        beta_kern_req = false;
        beta_kern_args = {{0, 0}};<commit_msg>add bool to store if beta kernel returned<commit_after>#ifndef GUARD_MIOPEN_GEMM_GEOMETRY_HPP_
#define GUARD_MIOPEN_GEMM_GEOMETRY_HPP_

#include <tinygemm/tinygemm.hpp>
#include <miopen/tensor.hpp>
#include <miopen/kernel_cache.hpp>

namespace miopen {

using tinygemm::TinyGemmGeometry;
using tinygemm::TinyGemmSolution;

struct GemmGeometry {
    std::array<int, 3> dims{}; // m, n, k
    std::array<int, 3> strides{}; // lda, ldb, ldc
    std::string algorithm_name;
    float alpha{};
    float beta{};
    TinyGemmGeometry tgg {};
    bool beta_kern_req{};
    
    /* jn : if tinygemm returned a beta kernel. 
     * not the same as beta_kern_req(uired), as 
     * if beta == 1, beta kernel is returned but
     * not required.
     * we still need to know if it was returned,
     * as the function signature of the main kernel
     * is then different.
     * */
    bool beta_kern_returned{}; 
    std::array<int, 2> beta_kern_args{};

    GemmGeometry(){}
    GemmGeometry(std::array<int, 3> pdims, std::array<int, 3>pstrides, std::string algo_name, float palpha, float pbeta, TinyGemmGeometry ptgg) : 
        dims(pdims), strides(pstrides), algorithm_name(algo_name), alpha(palpha), beta(pbeta), tgg(ptgg) 
    {
        beta_kern_req = false;
        beta_kern_returned = false;
        beta_kern_args = {{0, 0}};
{'fraction_non_alphanumeric': 0.12411032028469751, 'fraction_numerical': 0.0066725978647686835, 'mean_word_length': 3.964679911699779, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, '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': '393343', 'n_tokens_mistral': 858, 'n_tokens_neox': 817, 'n_words': 189}