1*523fa7a6SAndroid Build Coastguard Worker# Any targets that should be shared between fbcode and xplat must be defined in 2*523fa7a6SAndroid Build Coastguard Worker# targets.bzl. This file can contain fbcode-only targets. 3*523fa7a6SAndroid Build Coastguard Worker 4*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") 5*523fa7a6SAndroid Build Coastguard Workerload(":targets.bzl", "define_common_targets") 6*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/backends/qualcomm/qnn_version.bzl", "get_qnn_library_verision") 7*523fa7a6SAndroid Build Coastguard Worker 8*523fa7a6SAndroid Build Coastguard Workeroncall("executorch") 9*523fa7a6SAndroid Build Coastguard Worker 10*523fa7a6SAndroid Build Coastguard Workerdefine_common_targets() 11*523fa7a6SAndroid Build Coastguard Worker 12*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 13*523fa7a6SAndroid Build Coastguard Worker name = "llama_transformer", 14*523fa7a6SAndroid Build Coastguard Worker srcs = [ 15*523fa7a6SAndroid Build Coastguard Worker "llama_transformer.py", 16*523fa7a6SAndroid Build Coastguard Worker "rope.py", 17*523fa7a6SAndroid Build Coastguard Worker ], 18*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 19*523fa7a6SAndroid Build Coastguard Worker base_module = "executorch.examples.models.llama", 20*523fa7a6SAndroid Build Coastguard Worker visibility = [ 21*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 22*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 23*523fa7a6SAndroid Build Coastguard Worker ], 24*523fa7a6SAndroid Build Coastguard Worker deps = [ 25*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 26*523fa7a6SAndroid Build Coastguard Worker ], 27*523fa7a6SAndroid Build Coastguard Worker) 28*523fa7a6SAndroid Build Coastguard Worker 29*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 30*523fa7a6SAndroid Build Coastguard Worker name = "llama2_model", 31*523fa7a6SAndroid Build Coastguard Worker srcs = [ 32*523fa7a6SAndroid Build Coastguard Worker "__init__.py", 33*523fa7a6SAndroid Build Coastguard Worker "fairseq2.py", 34*523fa7a6SAndroid Build Coastguard Worker "model.py", 35*523fa7a6SAndroid Build Coastguard Worker ], 36*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 37*523fa7a6SAndroid Build Coastguard Worker base_module = "executorch.examples.models.llama", 38*523fa7a6SAndroid Build Coastguard Worker resources = { 39*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models/llama/params:params": "params", 40*523fa7a6SAndroid Build Coastguard Worker }, 41*523fa7a6SAndroid Build Coastguard Worker visibility = [ 42*523fa7a6SAndroid Build Coastguard Worker "//bento/...", 43*523fa7a6SAndroid Build Coastguard Worker "//bento_kernels/...", 44*523fa7a6SAndroid Build Coastguard Worker "//executorch/...", 45*523fa7a6SAndroid Build Coastguard Worker ], 46*523fa7a6SAndroid Build Coastguard Worker deps = [ 47*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 48*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models:model_base", 49*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models/llama:llama_transformer", 50*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models:checkpoint", 51*523fa7a6SAndroid Build Coastguard Worker ], 52*523fa7a6SAndroid Build Coastguard Worker) 53*523fa7a6SAndroid Build Coastguard Worker 54*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary( 55*523fa7a6SAndroid Build Coastguard Worker name = "export_llama", 56*523fa7a6SAndroid Build Coastguard Worker main_function = "executorch.examples.models.llama.export_llama.main", 57*523fa7a6SAndroid Build Coastguard Worker # visibility = ["//executorch/examples/..."], 58*523fa7a6SAndroid Build Coastguard Worker preload_deps = [ 59*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/custom_ops:model_sharding_py", 60*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/custom_ops:custom_ops_aot_lib", 61*523fa7a6SAndroid Build Coastguard Worker "//executorch/kernels/quantized:aot_lib", 62*523fa7a6SAndroid Build Coastguard Worker ], 63*523fa7a6SAndroid Build Coastguard Worker deps = [ 64*523fa7a6SAndroid Build Coastguard Worker ":export_library", 65*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 66*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/pybindings:aten_lib", 67*523fa7a6SAndroid Build Coastguard Worker ], 68*523fa7a6SAndroid Build Coastguard Worker) 69*523fa7a6SAndroid Build Coastguard Worker 70*523fa7a6SAndroid Build Coastguard Workerruntime.command_alias( 71*523fa7a6SAndroid Build Coastguard Worker name = "export_llama_qnn", 72*523fa7a6SAndroid Build Coastguard Worker env = { 73*523fa7a6SAndroid Build Coastguard Worker "LD_LIBRARY_PATH": "$(location fbsource//third-party/qualcomm/qnn/qnn-{0}:qnn_offline_compile_libs)".format(get_qnn_library_verision()), 74*523fa7a6SAndroid Build Coastguard Worker }, 75*523fa7a6SAndroid Build Coastguard Worker exe = ":export_llama", 76*523fa7a6SAndroid Build Coastguard Worker) 77*523fa7a6SAndroid Build Coastguard Worker 78*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 79*523fa7a6SAndroid Build Coastguard Worker name = "export_library", 80*523fa7a6SAndroid Build Coastguard Worker srcs = [ 81*523fa7a6SAndroid Build Coastguard Worker "export_llama.py", 82*523fa7a6SAndroid Build Coastguard Worker "export_llama_lib.py", 83*523fa7a6SAndroid Build Coastguard Worker "model.py", 84*523fa7a6SAndroid Build Coastguard Worker "source_transformation/apply_spin_quant_r1_r2.py", 85*523fa7a6SAndroid Build Coastguard Worker "source_transformation/attention.py", 86*523fa7a6SAndroid Build Coastguard Worker "source_transformation/lora.py", 87*523fa7a6SAndroid Build Coastguard Worker "source_transformation/pre_quantization.py", 88*523fa7a6SAndroid Build Coastguard Worker "source_transformation/prune_vocab.py", 89*523fa7a6SAndroid Build Coastguard Worker "source_transformation/quantize.py", 90*523fa7a6SAndroid Build Coastguard Worker "source_transformation/quantized_kv_cache.py", 91*523fa7a6SAndroid Build Coastguard Worker "source_transformation/rms_norm.py", 92*523fa7a6SAndroid Build Coastguard Worker "source_transformation/rope.py", 93*523fa7a6SAndroid Build Coastguard Worker "source_transformation/sdpa.py", 94*523fa7a6SAndroid Build Coastguard Worker "source_transformation/spin_quant.py", 95*523fa7a6SAndroid Build Coastguard Worker "source_transformation/vulkan_rope.py", 96*523fa7a6SAndroid Build Coastguard Worker ], 97*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 98*523fa7a6SAndroid Build Coastguard Worker base_module = "executorch.examples.models.llama", 99*523fa7a6SAndroid Build Coastguard Worker visibility = [ 100*523fa7a6SAndroid Build Coastguard Worker "//bento/...", 101*523fa7a6SAndroid Build Coastguard Worker "//bento_kernels/...", 102*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/...", 103*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 104*523fa7a6SAndroid Build Coastguard Worker ], 105*523fa7a6SAndroid Build Coastguard Worker deps = [ 106*523fa7a6SAndroid Build Coastguard Worker "//ai_codesign/gen_ai/fast_hadamard_transform:fast_hadamard_transform", 107*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 108*523fa7a6SAndroid Build Coastguard Worker "//executorch/backends/vulkan/_passes:vulkan_passes", 109*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models:model_base", 110*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models:models", 111*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/custom_ops:custom_ops_aot_py", 112*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/export:export_lib", 113*523fa7a6SAndroid Build Coastguard Worker # one definition has to be included in the user of the libarary 114*523fa7a6SAndroid Build Coastguard Worker # depending on what library the client wants to use 115*523fa7a6SAndroid Build Coastguard Worker # "//executorch/extension/pybindings:aten_lib", 116*523fa7a6SAndroid Build Coastguard Worker # "//executorch/extension/pybindings:portable_lib", 117*523fa7a6SAndroid Build Coastguard Worker # "//executorch/extension/pybindings:portable_lib_plus_custom", 118*523fa7a6SAndroid Build Coastguard Worker "//executorch/devtools/etrecord:etrecord", 119*523fa7a6SAndroid Build Coastguard Worker "//executorch/util:memory_profiler", 120*523fa7a6SAndroid Build Coastguard Worker "//executorch/util:python_profiler", 121*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/pypi/coremltools:coremltools", 122*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/pypi/sentencepiece:sentencepiece", 123*523fa7a6SAndroid Build Coastguard Worker "//pytorch/ao:torchao", 124*523fa7a6SAndroid Build Coastguard Worker ], 125*523fa7a6SAndroid Build Coastguard Worker) 126*523fa7a6SAndroid Build Coastguard Worker 127*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary( 128*523fa7a6SAndroid Build Coastguard Worker name = "eval_llama", 129*523fa7a6SAndroid Build Coastguard Worker main_function = "executorch.examples.models.llama.eval_llama.main", 130*523fa7a6SAndroid Build Coastguard Worker deps = [ 131*523fa7a6SAndroid Build Coastguard Worker ":eval_library", 132*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 133*523fa7a6SAndroid Build Coastguard Worker ], 134*523fa7a6SAndroid Build Coastguard Worker) 135*523fa7a6SAndroid Build Coastguard Worker 136*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 137*523fa7a6SAndroid Build Coastguard Worker name = "eval_library", 138*523fa7a6SAndroid Build Coastguard Worker srcs = [ 139*523fa7a6SAndroid Build Coastguard Worker "eval_llama.py", 140*523fa7a6SAndroid Build Coastguard Worker "eval_llama_lib.py", 141*523fa7a6SAndroid Build Coastguard Worker "evaluate/eager_eval.py", 142*523fa7a6SAndroid Build Coastguard Worker ], 143*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 144*523fa7a6SAndroid Build Coastguard Worker base_module = "executorch.examples.models.llama", 145*523fa7a6SAndroid Build Coastguard Worker visibility = [ 146*523fa7a6SAndroid Build Coastguard Worker "//bento/...", 147*523fa7a6SAndroid Build Coastguard Worker "//bento_kernels/...", 148*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/...", 149*523fa7a6SAndroid Build Coastguard Worker "@EXECUTORCH_CLIENTS", 150*523fa7a6SAndroid Build Coastguard Worker ], 151*523fa7a6SAndroid Build Coastguard Worker deps = [ 152*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/pypi/lm-eval:lm-eval", 153*523fa7a6SAndroid Build Coastguard Worker "fbsource//third-party/pypi/tiktoken:tiktoken", 154*523fa7a6SAndroid Build Coastguard Worker ":export_library", 155*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models/llama/tokenizer:tiktoken_py", 156*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/export:export_lib", 157*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/tokenizer:tokenizer_py_lib", 158*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/pybindings:portable_lib", 159*523fa7a6SAndroid Build Coastguard Worker ], 160*523fa7a6SAndroid Build Coastguard Worker) 161*523fa7a6SAndroid Build Coastguard Worker 162*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 163*523fa7a6SAndroid Build Coastguard Worker name = "quantized_kv_cache", 164*523fa7a6SAndroid Build Coastguard Worker srcs = [ 165*523fa7a6SAndroid Build Coastguard Worker "source_transformation/quantized_kv_cache.py", 166*523fa7a6SAndroid Build Coastguard Worker ], 167*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 168*523fa7a6SAndroid Build Coastguard Worker visibility = ["//executorch/..."], 169*523fa7a6SAndroid Build Coastguard Worker deps = [ 170*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 171*523fa7a6SAndroid Build Coastguard Worker ], 172*523fa7a6SAndroid Build Coastguard Worker) 173*523fa7a6SAndroid Build Coastguard Worker 174*523fa7a6SAndroid Build Coastguard Workerruntime.python_library( 175*523fa7a6SAndroid Build Coastguard Worker name = "sdpa", 176*523fa7a6SAndroid Build Coastguard Worker srcs = [ 177*523fa7a6SAndroid Build Coastguard Worker "source_transformation/sdpa.py", 178*523fa7a6SAndroid Build Coastguard Worker ], 179*523fa7a6SAndroid Build Coastguard Worker _is_external_target = True, 180*523fa7a6SAndroid Build Coastguard Worker visibility = ["//executorch/..."], 181*523fa7a6SAndroid Build Coastguard Worker deps = [ 182*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 183*523fa7a6SAndroid Build Coastguard Worker ], 184*523fa7a6SAndroid Build Coastguard Worker) 185*523fa7a6SAndroid Build Coastguard Worker 186*523fa7a6SAndroid Build Coastguard Workerruntime.python_test( 187*523fa7a6SAndroid Build Coastguard Worker name = "quantized_kv_cache_test", 188*523fa7a6SAndroid Build Coastguard Worker srcs = [ 189*523fa7a6SAndroid Build Coastguard Worker "source_transformation/test_quantized_kv_cache.py", 190*523fa7a6SAndroid Build Coastguard Worker ], 191*523fa7a6SAndroid Build Coastguard Worker preload_deps = [ 192*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/custom_ops:custom_ops_aot_lib", 193*523fa7a6SAndroid Build Coastguard Worker ], 194*523fa7a6SAndroid Build Coastguard Worker deps = [ 195*523fa7a6SAndroid Build Coastguard Worker ":quantized_kv_cache", 196*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 197*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models/llama:llama_transformer", 198*523fa7a6SAndroid Build Coastguard Worker ], 199*523fa7a6SAndroid Build Coastguard Worker) 200*523fa7a6SAndroid Build Coastguard Worker 201*523fa7a6SAndroid Build Coastguard Workerruntime.python_test( 202*523fa7a6SAndroid Build Coastguard Worker name = "quantized_sdpa_with_kv_cache_test", 203*523fa7a6SAndroid Build Coastguard Worker srcs = [ 204*523fa7a6SAndroid Build Coastguard Worker "source_transformation/test_sdpa_with_quantized_kv_cache.py", 205*523fa7a6SAndroid Build Coastguard Worker ], 206*523fa7a6SAndroid Build Coastguard Worker preload_deps = [ 207*523fa7a6SAndroid Build Coastguard Worker "//executorch/extension/llm/custom_ops:custom_ops_aot_lib", 208*523fa7a6SAndroid Build Coastguard Worker ], 209*523fa7a6SAndroid Build Coastguard Worker deps = [ 210*523fa7a6SAndroid Build Coastguard Worker ":quantized_kv_cache", 211*523fa7a6SAndroid Build Coastguard Worker ":sdpa", 212*523fa7a6SAndroid Build Coastguard Worker "//caffe2:torch", 213*523fa7a6SAndroid Build Coastguard Worker "//executorch/examples/models/llama:llama_transformer", 214*523fa7a6SAndroid Build Coastguard Worker ], 215*523fa7a6SAndroid Build Coastguard Worker) 216