Skip to content

Commit 5fdf9cd

Browse files
committed
Split Training JNI targets to new buck target
Address comment on JNI binary size sensitivity. Rather than adding to the existing JNI buck targets, initially introduce a new executorch_training_jni target.
1 parent d9ae077 commit 5fdf9cd

File tree

3 files changed

+24
-17
lines changed

3 files changed

+24
-17
lines changed

extension/android/jni/BUCK

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ non_fbcode_target(_kind = executorch_generated_lib,
2828

2929
non_fbcode_target(_kind = fb_android_cxx_library,
3030
name = "executorch_jni",
31-
srcs = ["jni_layer.cpp", "log.cpp", "jni_layer_runtime.cpp", "jni_layer_training.cpp"],
31+
srcs = ["jni_layer.cpp", "log.cpp", "jni_layer_runtime.cpp"],
3232
allow_jni_merging = False,
3333
compiler_flags = ET_JNI_COMPILER_FLAGS,
3434
soname = "libexecutorch.$(ext)",
@@ -39,19 +39,38 @@ non_fbcode_target(_kind = fb_android_cxx_library,
3939
"//fbandroid/libraries/fbjni:fbjni",
4040
"//fbandroid/native/fb:fb",
4141
"//third-party/glog:glog",
42-
"//xplat/executorch/extension/data_loader:file_data_loader_static",
4342
"//xplat/executorch/extension/module:module_static",
4443
"//xplat/executorch/extension/runner_util:inputs_static",
4544
"//xplat/executorch/extension/tensor:tensor_static",
4645
"//xplat/executorch/extension/threadpool:threadpool_static",
47-
"//xplat/executorch/extension/training/module:training_module_static",
48-
"//xplat/executorch/extension/training/optimizer:sgd_static",
4946
third_party_dep("cpuinfo"),
5047
],
5148
)
5249

5350
non_fbcode_target(_kind = fb_android_cxx_library,
5451
name = "executorch_jni_full",
52+
srcs = ["jni_layer.cpp", "log.cpp", "jni_layer_runtime.cpp"],
53+
allow_jni_merging = False,
54+
compiler_flags = ET_JNI_COMPILER_FLAGS,
55+
soname = "libexecutorch.$(ext)",
56+
visibility = ["PUBLIC"],
57+
deps = [
58+
":jni_headers",
59+
":log_provider_static",
60+
":generated_op_lib_optimized_static",
61+
"//fbandroid/libraries/fbjni:fbjni",
62+
"//fbandroid/native/fb:fb",
63+
"//third-party/glog:glog",
64+
"//xplat/executorch/backends/xnnpack:xnnpack_backend_static",
65+
"//xplat/executorch/extension/module:module_static",
66+
"//xplat/executorch/extension/runner_util:inputs_static",
67+
"//xplat/executorch/extension/tensor:tensor_static",
68+
"//xplat/executorch/kernels/quantized:generated_lib_static",
69+
],
70+
)
71+
72+
non_fbcode_target(_kind = fb_android_cxx_library,
73+
name = "executorch_training_jni",
5574
srcs = ["jni_layer.cpp", "log.cpp", "jni_layer_runtime.cpp", "jni_layer_training.cpp"],
5675
allow_jni_merging = False,
5776
compiler_flags = ET_JNI_COMPILER_FLAGS,
@@ -81,7 +100,6 @@ non_fbcode_target(_kind = fb_android_cxx_library,
81100
"jni_layer.cpp",
82101
"jni_layer_llama.cpp",
83102
"jni_layer_runtime.cpp",
84-
"jni_layer_training.cpp",
85103
],
86104
allow_jni_merging = False,
87105
compiler_flags = ET_JNI_COMPILER_FLAGS + [
@@ -96,16 +114,13 @@ non_fbcode_target(_kind = fb_android_cxx_library,
96114
"//fbandroid/native/fb:fb",
97115
"//third-party/glog:glog",
98116
"//xplat/executorch/backends/xnnpack:xnnpack_backend_static",
99-
"//xplat/executorch/extension/data_loader:file_data_loader_static",
100117
"//xplat/executorch/examples/models/llama/runner:runner_static",
101118
"//xplat/executorch/examples/models/llava/runner:runner_static",
102119
"//xplat/executorch/extension/module:module_static",
103120
"//xplat/executorch/extension/runner_util:inputs_static",
104121
"//xplat/executorch/extension/tensor:tensor_static",
105122
"//xplat/executorch/extension/threadpool:cpuinfo_utils_static",
106123
"//xplat/executorch/extension/threadpool:threadpool_static",
107-
"//xplat/executorch/extension/training/module:training_module_static",
108-
"//xplat/executorch/extension/training/optimizer:sgd_static",
109124
],
110125
)
111126

@@ -128,10 +143,6 @@ runtime.export_file(
128143
name = "jni_layer_runtime.cpp",
129144
)
130145

131-
runtime.export_file(
132-
name = "jni_layer_training.cpp",
133-
)
134-
135146
runtime.cxx_library(
136147
name = "jni_headers",
137148
exported_headers = [

extension/android/jni/jni_layer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ extern void register_natives_for_llm();
496496
void register_natives_for_llm() {}
497497
#endif
498498
extern void register_natives_for_runtime();
499-
extern void register_natives_for_training();
499+
void ET_WEAK register_natives_for_training() {};
500500

501501
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
502502
return facebook::jni::initialize(vm, [] {

extension/android/jni/selective_jni.buck.bzl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ def selective_jni_target(name, deps, srcs = [], soname = "libexecutorch.$(ext)")
99
name = name,
1010
srcs = [
1111
"//xplat/executorch/extension/android/jni:jni_layer.cpp",
12-
"//xplat/executorch/extension/android/jni:jni_layer_training.cpp",
1312
"//xplat/executorch/extension/android/jni:jni_layer_runtime.cpp",
1413
] + srcs,
1514
allow_jni_merging = False,
@@ -22,13 +21,10 @@ def selective_jni_target(name, deps, srcs = [], soname = "libexecutorch.$(ext)")
2221
"//third-party/glog:glog",
2322
"//xplat/executorch/extension/android/jni:jni_headers",
2423
"//xplat/executorch/extension/android/jni:log_provider_static",
25-
"//xplat/executorch/extension/data_loader:file_data_loader_static",
2624
"//xplat/executorch/extension/module:module_static",
2725
"//xplat/executorch/extension/runner_util:inputs_static",
2826
"//xplat/executorch/extension/tensor:tensor_static",
2927
"//xplat/executorch/extension/threadpool:threadpool_static",
30-
"//xplat/executorch/extension/training/module:training_module_static",
31-
"//xplat/executorch/extension/training/optimizer:sgd_static",
3228
third_party_dep("cpuinfo"),
3329
] + deps,
3430
)

0 commit comments

Comments
 (0)