Skip to content

Commit 0b387ca

Browse files
committed
[update] llm_pack.py ThreadPool
1 parent b678240 commit 0b387ca

1 file changed

Lines changed: 98 additions & 42 deletions

File tree

projects/llm_framework/tools/llm_pack.py

Lines changed: 98 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import requests
77
import tarfile
88
import shutil
9+
import concurrent.futures
910
'''
1011
{package_name}_{version}-{revision}_{architecture}.deb
1112
lib-llm_1.0-m5stack1_arm64.deb
@@ -20,7 +21,7 @@
2021

2122
def create_lib_deb(package_name, version, src_folder, revision = 'm5stack1'):
2223
deb_file = f"{package_name}_{version}-{revision}_arm64.deb"
23-
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian')
24+
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian-{}'.format(package_name))
2425
if os.path.exists(deb_folder):
2526
shutil.rmtree(deb_folder)
2627
os.makedirs(deb_folder, exist_ok = True)
@@ -131,10 +132,11 @@ def create_lib_deb(package_name, version, src_folder, revision = 'm5stack1'):
131132
subprocess.run(["dpkg-deb", "-b", deb_folder, deb_file], check=True)
132133
print(f"Debian package created: {deb_file}")
133134
shutil.rmtree(deb_folder)
135+
return package_name + " creat success!"
134136

135137
def create_data_deb(package_name, version, src_folder, revision = 'm5stack1'):
136138
deb_file = f"{package_name}_{version}-{revision}_arm64.deb"
137-
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian')
139+
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian-{}'.format(package_name))
138140
if os.path.exists(deb_folder):
139141
shutil.rmtree(deb_folder)
140142
os.makedirs(deb_folder, exist_ok = True)
@@ -188,10 +190,11 @@ def create_data_deb(package_name, version, src_folder, revision = 'm5stack1'):
188190
subprocess.run(["dpkg-deb", "-b", deb_folder, deb_file], check=True)
189191
print(f"Debian package created: {deb_file}")
190192
shutil.rmtree(deb_folder)
193+
return package_name + " creat success!"
191194

192195
def create_bin_deb(package_name, version, src_folder, revision = 'm5stack1'):
193196
deb_file = f"{package_name}_{version}-{revision}_arm64.deb"
194-
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian')
197+
deb_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'debian-{}'.format(package_name))
195198
# os.makedirs(deb_folder, exist_ok=True)
196199
if os.path.exists(deb_folder):
197200
shutil.rmtree(deb_folder)
@@ -246,6 +249,7 @@ def create_bin_deb(package_name, version, src_folder, revision = 'm5stack1'):
246249
subprocess.run(["dpkg-deb", "-b", deb_folder, deb_file], check=True)
247250
print(f"Debian package created: {deb_file}")
248251
shutil.rmtree(deb_folder)
252+
return package_name + " creat success!"
249253

250254
if __name__ == "__main__":
251255

@@ -265,43 +269,95 @@ def create_bin_deb(package_name, version, src_folder, revision = 'm5stack1'):
265269
create_data = True
266270
if len(sys.argv) > 1:
267271
src_folder = sys.argv[1]
268-
if (create_lib):
269-
create_lib_deb('lib-llm', version, src_folder, revision)
270-
if (create_bin):
271-
create_bin_deb('llm-sys', version, src_folder, revision)
272-
create_bin_deb('llm-audio', version, src_folder, revision)
273-
create_bin_deb('llm-kws', version, src_folder, revision)
274-
create_bin_deb('llm-asr', version, src_folder, revision)
275-
create_bin_deb('llm-llm', version, src_folder, revision)
276-
create_bin_deb('llm-tts', version, src_folder, revision)
277-
create_bin_deb('llm-melotts', version, src_folder, revision)
278-
create_bin_deb('llm-camera', version, src_folder, revision)
279-
create_bin_deb('llm-vlm', version, src_folder, revision)
280-
create_bin_deb('llm-yolo', version, src_folder, revision)
281-
create_bin_deb('llm-skel', version, src_folder, revision)
282-
create_bin_deb('llm-depth-anything', version, src_folder, revision)
283-
# create_bin_deb('llm-tokenizer', version, src_folder, revision)
272+
cpu_count = os.cpu_count()
273+
if cpu_count - 2 < 1:
274+
cpu_count = 2
275+
else:
276+
cpu_count = cpu_count - 2
277+
# cpu_count = 10
278+
with concurrent.futures.ThreadPoolExecutor(max_workers=cpu_count) as executor:
279+
futures = []
280+
if (create_lib):
281+
futures.append(executor.submit(create_lib_deb, 'lib-llm', version, src_folder, revision))
282+
if (create_bin):
283+
futures.append(executor.submit(create_bin_deb,'llm-sys', version, src_folder, revision))
284+
futures.append(executor.submit(create_bin_deb,'llm-audio', version, src_folder, revision))
285+
futures.append(executor.submit(create_bin_deb,'llm-kws', version, src_folder, revision))
286+
futures.append(executor.submit(create_bin_deb,'llm-asr', version, src_folder, revision))
287+
futures.append(executor.submit(create_bin_deb,'llm-llm', version, src_folder, revision))
288+
futures.append(executor.submit(create_bin_deb,'llm-tts', version, src_folder, revision))
289+
futures.append(executor.submit(create_bin_deb,'llm-melotts', version, src_folder, revision))
290+
futures.append(executor.submit(create_bin_deb,'llm-camera', version, src_folder, revision))
291+
futures.append(executor.submit(create_bin_deb,'llm-vlm', version, src_folder, revision))
292+
futures.append(executor.submit(create_bin_deb,'llm-yolo', version, src_folder, revision))
293+
futures.append(executor.submit(create_bin_deb,'llm-skel', version, src_folder, revision))
294+
futures.append(executor.submit(create_bin_deb,'llm-depth-anything', version, src_folder, revision))
295+
if (create_data):
296+
futures.append(executor.submit(create_data_deb,'llm-audio-en-us', data_version, src_folder, revision))
297+
futures.append(executor.submit(create_data_deb,'llm-audio-zh-cn', data_version, src_folder, revision))
298+
futures.append(executor.submit(create_data_deb,'llm-sherpa-ncnn-streaming-zipformer-20M-2023-02-17', data_version, src_folder, revision))
299+
futures.append(executor.submit(create_data_deb,'llm-sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23', data_version, src_folder, revision))
300+
futures.append(executor.submit(create_data_deb,'llm-sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01', '0.3', src_folder, revision))
301+
futures.append(executor.submit(create_data_deb,'llm-sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01', '0.3', src_folder, revision))
302+
# futures.append(executor.submit(create_data_deb,'llm-qwen2-0.5B-prefill-20e', data_version, src_folder, revision))
303+
# futures.append(executor.submit(create_data_deb,'llm-qwen2-1.5B-prefill-20e', data_version, src_folder, revision))
304+
futures.append(executor.submit(create_data_deb,'llm-qwen2.5-0.5B-prefill-20e', data_version, src_folder, revision))
305+
futures.append(executor.submit(create_data_deb,'llm-qwen2.5-1.5B-ax630c', '0.3', src_folder, revision))
306+
futures.append(executor.submit(create_data_deb,'llm-single-speaker-english-fast', data_version, src_folder, revision))
307+
futures.append(executor.submit(create_data_deb,'llm-single-speaker-fast', data_version, src_folder, revision))
308+
futures.append(executor.submit(create_data_deb,'llm-melotts-zh-cn', '0.3', src_folder, revision))
309+
futures.append(executor.submit(create_data_deb,'llm-yolo11n', data_version, src_folder, revision))
310+
futures.append(executor.submit(create_data_deb,'llm-yolo11n-pose', '0.3', src_folder, revision))
311+
futures.append(executor.submit(create_data_deb,'llm-yolo11n-hand-pose', '0.3', src_folder, revision))
312+
futures.append(executor.submit(create_data_deb,'llm-yolo11n-seg', data_version, src_folder, revision))
313+
futures.append(executor.submit(create_data_deb,'llm-qwen2.5-coder-0.5B-ax630c', data_version, src_folder, revision))
314+
futures.append(executor.submit(create_data_deb,'llm-llama3.2-1B-prefill-ax630c', data_version, src_folder, revision))
315+
futures.append(executor.submit(create_data_deb,'llm-openbuddy-llama3.2-1B-ax630c', data_version, src_folder, revision))
316+
futures.append(executor.submit(create_data_deb,'llm-internvl2.5-1B-ax630c', '0.3', src_folder, revision))
317+
futures.append(executor.submit(create_data_deb,'llm-depth-anything-ax630c', '0.3', src_folder, revision))
318+
for future in concurrent.futures.as_completed(futures):
319+
result = future.result()
320+
print(result)
321+
322+
323+
324+
# if (create_lib):
325+
# create_lib_deb('lib-llm', version, src_folder, revision)
326+
# if (create_bin):
327+
# create_bin_deb('llm-sys', version, src_folder, revision)
328+
# create_bin_deb('llm-audio', version, src_folder, revision)
329+
# create_bin_deb('llm-kws', version, src_folder, revision)
330+
# create_bin_deb('llm-asr', version, src_folder, revision)
331+
# create_bin_deb('llm-llm', version, src_folder, revision)
332+
# create_bin_deb('llm-tts', version, src_folder, revision)
333+
# create_bin_deb('llm-melotts', version, src_folder, revision)
334+
# create_bin_deb('llm-camera', version, src_folder, revision)
335+
# create_bin_deb('llm-vlm', version, src_folder, revision)
336+
# create_bin_deb('llm-yolo', version, src_folder, revision)
337+
# create_bin_deb('llm-skel', version, src_folder, revision)
338+
# create_bin_deb('llm-depth-anything', version, src_folder, revision)
339+
# # create_bin_deb('llm-tokenizer', version, src_folder, revision)
284340

285-
if (create_data):
286-
create_data_deb('llm-audio-en-us', data_version, src_folder, revision)
287-
create_data_deb('llm-audio-zh-cn', data_version, src_folder, revision)
288-
create_data_deb('llm-sherpa-ncnn-streaming-zipformer-20M-2023-02-17', data_version, src_folder, revision)
289-
create_data_deb('llm-sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23', data_version, src_folder, revision)
290-
create_data_deb('llm-sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01', '0.3', src_folder, revision)
291-
create_data_deb('llm-sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01', '0.3', src_folder, revision)
292-
# create_data_deb('llm-qwen2-0.5B-prefill-20e', data_version, src_folder, revision)
293-
# create_data_deb('llm-qwen2-1.5B-prefill-20e', data_version, src_folder, revision)
294-
create_data_deb('llm-qwen2.5-0.5B-prefill-20e', data_version, src_folder, revision)
295-
create_data_deb('llm-qwen2.5-1.5B-ax630c', '0.3', src_folder, revision)
296-
create_data_deb('llm-single-speaker-english-fast', data_version, src_folder, revision)
297-
create_data_deb('llm-single-speaker-fast', data_version, src_folder, revision)
298-
create_data_deb('llm-melotts-zh-cn', '0.3', src_folder, revision)
299-
create_data_deb('llm-yolo11n', data_version, src_folder, revision)
300-
create_data_deb('llm-yolo11n-pose', '0.3', src_folder, revision)
301-
create_data_deb('llm-yolo11n-hand-pose', '0.3', src_folder, revision)
302-
create_data_deb('llm-yolo11n-seg', data_version, src_folder, revision)
303-
create_data_deb('llm-qwen2.5-coder-0.5B-ax630c', data_version, src_folder, revision)
304-
create_data_deb('llm-llama3.2-1B-prefill-ax630c', data_version, src_folder, revision)
305-
create_data_deb('llm-openbuddy-llama3.2-1B-ax630c', data_version, src_folder, revision)
306-
create_data_deb('llm-internvl2.5-1B-ax630c', '0.3', src_folder, revision)
307-
create_data_deb('llm-depth-anything-ax630c', '0.3', src_folder, revision)
341+
# if (create_data):
342+
# create_data_deb('llm-audio-en-us', data_version, src_folder, revision)
343+
# create_data_deb('llm-audio-zh-cn', data_version, src_folder, revision)
344+
# create_data_deb('llm-sherpa-ncnn-streaming-zipformer-20M-2023-02-17', data_version, src_folder, revision)
345+
# create_data_deb('llm-sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23', data_version, src_folder, revision)
346+
# create_data_deb('llm-sherpa-onnx-kws-zipformer-gigaspeech-3.3M-2024-01-01', '0.3', src_folder, revision)
347+
# create_data_deb('llm-sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01', '0.3', src_folder, revision)
348+
# # create_data_deb('llm-qwen2-0.5B-prefill-20e', data_version, src_folder, revision)
349+
# # create_data_deb('llm-qwen2-1.5B-prefill-20e', data_version, src_folder, revision)
350+
# create_data_deb('llm-qwen2.5-0.5B-prefill-20e', data_version, src_folder, revision)
351+
# create_data_deb('llm-qwen2.5-1.5B-ax630c', '0.3', src_folder, revision)
352+
# create_data_deb('llm-single-speaker-english-fast', data_version, src_folder, revision)
353+
# create_data_deb('llm-single-speaker-fast', data_version, src_folder, revision)
354+
# create_data_deb('llm-melotts-zh-cn', '0.3', src_folder, revision)
355+
# create_data_deb('llm-yolo11n', data_version, src_folder, revision)
356+
# create_data_deb('llm-yolo11n-pose', '0.3', src_folder, revision)
357+
# create_data_deb('llm-yolo11n-hand-pose', '0.3', src_folder, revision)
358+
# create_data_deb('llm-yolo11n-seg', data_version, src_folder, revision)
359+
# create_data_deb('llm-qwen2.5-coder-0.5B-ax630c', data_version, src_folder, revision)
360+
# create_data_deb('llm-llama3.2-1B-prefill-ax630c', data_version, src_folder, revision)
361+
# create_data_deb('llm-openbuddy-llama3.2-1B-ax630c', data_version, src_folder, revision)
362+
# create_data_deb('llm-internvl2.5-1B-ax630c', '0.3', src_folder, revision)
363+
# create_data_deb('llm-depth-anything-ax630c', '0.3', src_folder, revision)

0 commit comments

Comments
 (0)