Skip to content

Commit

Permalink
Refactor the codegen directory, pt 10 (#2479)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: #2479

- Migrate optimizer templates in `codegen/` over to `codegen/training/optimizer`

Reviewed By: spcyppt

Differential Revision: D55762970

fbshipit-source-id: 14544d8e928594a453a6f569ac6f3dfcb508a9f1
  • Loading branch information
q10 authored and facebook-github-bot committed Apr 5, 2024
1 parent 126cdb1 commit aa4127f
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 27 deletions.
4 changes: 3 additions & 1 deletion fbgemm_gpu/codegen/genscript/generate_backward_split.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,9 @@ def generate_backward_split_gpu(**kwargs: Any) -> None:
)

# Generate optimizer kernel
CodeTemplate.load("embedding_optimizer_split_device_kernel_template.cuh").write(
CodeTemplate.load(
"training/optimizer/embedding_optimizer_split_device_kernel_template.cuh"
).write(
f"gen_embedding_optimizer_{optimizer}_split_device_kernel.cuh", **kwargs
)

Expand Down
53 changes: 27 additions & 26 deletions fbgemm_gpu/codegen/genscript/generate_embedding_optimizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,32 +40,33 @@ def generate(**kwargs: Any) -> None:
)
kwargs["args"] = kwargs["args"].cuda

# Generate CUDA host code
CodeTemplate.load("embedding_optimizer_split_template.cu").write(
f"gen_embedding_optimizer_{optimizer}_split_cuda.cu", **kwargs
)

# Generate CUDA kernel code
CodeTemplate.load("embedding_optimizer_split_kernel_template.cu").write(
f"gen_embedding_optimizer_{optimizer}_split_kernel.cu", **kwargs
)

# Generate host code
CodeTemplate.load("embedding_optimizer_split_host_template.cpp").write(
f"gen_embedding_optimizer_{optimizer}_split.cpp", **kwargs
)

# Generates Python invoker for CUDA
CodeTemplate.load("split_embedding_optimizer_codegen.template").write(
f"split_embedding_optimizer_{optimizer}.py",
is_fbcode=args.is_fbcode,
**kwargs,
)

# Generate optimizer kernel headers
CodeTemplate.load("embedding_optimizer_split_device_kernel_template.cuh").write(
f"gen_embedding_optimizer_{optimizer}_split_device_kernel.cuh", **kwargs
)
PREFIX = "training/optimizer"

for template_filepath, filename in [
( # CUDA host code
f"{PREFIX}/embedding_optimizer_split_template.cu",
f"gen_embedding_optimizer_{optimizer}_split_cuda.cu",
),
( # CUDA kernel code
f"{PREFIX}/embedding_optimizer_split_kernel_template.cu",
f"gen_embedding_optimizer_{optimizer}_split_kernel.cu",
),
( # CPU code
f"{PREFIX}/embedding_optimizer_split_host_template.cpp",
f"gen_embedding_optimizer_{optimizer}_split.cpp",
),
( # Optimizer kernel headers
f"{PREFIX}/embedding_optimizer_split_device_kernel_template.cuh",
f"gen_embedding_optimizer_{optimizer}_split_device_kernel.cuh",
),
( # Python kernel invokers
"training/python/split_embedding_optimizer_codegen.template",
f"split_embedding_optimizer_{optimizer}.py",
),
]:
CodeTemplate.load(template_filepath).write(
filename, is_fbcode=args.is_fbcode, **kwargs
)


def main() -> None:
Expand Down

0 comments on commit aa4127f

Please sign in to comment.