From 451d2e975cbe6edb066e079f7773d62059779834 Mon Sep 17 00:00:00 2001 From: Benson Ma Date: Thu, 19 Sep 2024 15:21:36 -0700 Subject: [PATCH] Redefine FBGEMM targets with gpu_cpp_library [12/N] (#3155) Summary: Pull Request resolved: https://github.com/pytorch/FBGEMM/pull/3155 X-link: https://github.com/facebookresearch/FBGEMM/pull/251 - Redefine `merge_pooled_embeddings_*` targets using `gpu_cpp_library` Differential Revision: D62978444 --- .../bench/merge_embeddings_benchmark.py | 12 +--------- fbgemm_gpu/fbgemm_gpu/sparse_ops.py | 9 +++---- .../test/merge_pooled_embeddings_test.py | 24 ++++++------------- 3 files changed, 11 insertions(+), 34 deletions(-) diff --git a/fbgemm_gpu/bench/merge_embeddings_benchmark.py b/fbgemm_gpu/bench/merge_embeddings_benchmark.py index 95ce71d279..4b0b48f708 100644 --- a/fbgemm_gpu/bench/merge_embeddings_benchmark.py +++ b/fbgemm_gpu/bench/merge_embeddings_benchmark.py @@ -44,17 +44,7 @@ else: from fbgemm_gpu.bench.bench_utils import benchmark_torch_function - if torch.version.hip: - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings_hip" - ) - else: - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings" - ) - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings_cpu" - ) + torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings") # pyre-fixme[2]: Parameter must be annotated. diff --git a/fbgemm_gpu/fbgemm_gpu/sparse_ops.py b/fbgemm_gpu/fbgemm_gpu/sparse_ops.py index 21e858e1a4..de9a21ef97 100644 --- a/fbgemm_gpu/fbgemm_gpu/sparse_ops.py +++ b/fbgemm_gpu/fbgemm_gpu/sparse_ops.py @@ -13,25 +13,22 @@ from fbgemm_gpu.split_embedding_configs import SparseType from fbgemm_gpu.split_table_batched_embeddings_ops_common import PoolingMode +from fbgemm_gpu.utils.loader import load_torch_module try: # pyre-ignore from fbgemm_gpu import open_source # noqa: F401 except Exception: + load_torch_module("//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings") + if torch.version.hip: torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu:sparse_ops_hip") - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings_hip" - ) torch.ops.load_library( "//deeplearning/fbgemm/fbgemm_gpu/codegen:embedding_ops_hip" ) else: torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu:sparse_ops") - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings" - ) torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu/codegen:embedding_ops") torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu:input_combine") diff --git a/fbgemm_gpu/test/merge_pooled_embeddings_test.py b/fbgemm_gpu/test/merge_pooled_embeddings_test.py index ade56fffad..64951d45fd 100644 --- a/fbgemm_gpu/test/merge_pooled_embeddings_test.py +++ b/fbgemm_gpu/test/merge_pooled_embeddings_test.py @@ -11,34 +11,24 @@ import unittest from typing import Tuple +import fbgemm_gpu + import hypothesis.strategies as st import torch from hypothesis import given, settings, Verbosity -try: - # pyre-ignore[21] - from fbgemm_gpu import open_source # noqa: F401 +# pyre-fixme[16]: Module `fbgemm_gpu` has no attribute `open_source`. +open_source: bool = getattr(fbgemm_gpu, "open_source", False) +if open_source: # pyre-ignore[21] from test_utils import gpu_unavailable -except Exception: - if torch.version.hip: - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings_hip" - ) - else: - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings" - ) - - torch.ops.load_library( - "//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings_cpu" - ) +else: import fbgemm_gpu.sparse_ops # noqa: F401, E402 from fbgemm_gpu.test.test_utils import gpu_unavailable - open_source = False + torch.ops.load_library("//deeplearning/fbgemm/fbgemm_gpu:merge_pooled_embeddings") typed_gpu_unavailable: Tuple[bool, str] = gpu_unavailable