Enabling diff datatypes for tile_engine and build with more granularity (#2392)

* merging recent changes to universal gemm to tile_engine

* Reducing Linking time by generating less intermediate files

* make small libs to build faster

* Reducing the instances

* reducing instances

* Restoring default config

* Restoring default config

* warp_n reverted in default config

* Adding diff json files for fp8 and fp16, cmake changes for fp8

* Restructure the CMake File

* Added more granularity for build and some debugging code

* removed some of debugging statements

* added fp8 instances

* tahe datatype from command line to enable both type of json files

* updated README file

* code cleanup

* code cleanup

* updated jenkinsfile

* enable tile_engine daily builds

* updating cmake file

* updated CMakeLists.txt

* Updating CMake code fixing gfx12 build

* Updating CMake code fixing gfx12 build

* Fix CMake file null checks

* fixed traces of rebase

* Update tile_engine/ops/gemm/README.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

* Update tile_engine/ops/gemm/README.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

* Update tile_engine/ops/gemm/README.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

* fixing rebase issue

---------

Co-authored-by: khushbu <khuagarw@gmail.com>
Co-authored-by: ThomasNing <thomas.ning@amd.com>
Co-authored-by: illsilin_amdeng <Illia.Silin@amd.com>
Co-authored-by: AviralGoelAMD <aviral.goel@amd.com>
Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>
This commit is contained in:
Khushbu Agarwal
2025-06-25 15:18:24 -07:00
committed by GitHub
parent e03293ebce
commit a14753b86f
10 changed files with 458 additions and 292 deletions

View File

@@ -118,7 +118,7 @@ class GemmConfig:
trait_config: TraitConfig
@classmethod
def from_json(cls: Type["GemmConfig"], filepath: str) -> "GemmConfig":
def from_json(cls: Type["GemmConfig"], filepath: str, datatype: str) -> "GemmConfig":
"""JSON configuration loader with validation controls"""
config_path = Path(filepath)
@@ -129,18 +129,24 @@ class GemmConfig:
with config_path.open("r") as f:
config_dict = json.load(f)
a_type = datatype
b_type = datatype
c_type = datatype
if b_type == 'int4':
a_type = "fp16"
if b_type in ['bf8', 'fp8', 'int4']:
c_type = "fp16"
# Parse problem config
#TODO: Not reading datatype information from json file.
problem = ProblemConfig(
datatypes=(
EnumConfigParam(
values=config_dict["problem"]["datatype_a"]["values"]
),
values=[a_type]),
EnumConfigParam(
values=config_dict["problem"]["datatype_b"]["values"]
),
values=[b_type]),
EnumConfigParam(
values=config_dict["problem"]["datatype_c"]["values"]
),
values=[c_type])
),
layouts=(
EnumConfigParam(