dgarrett-synaptics commited on
Commit
6da517e
·
verified ·
1 Parent(s): 5dc1809

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -24
app.py CHANGED
@@ -28,7 +28,7 @@ def get_oauth_info(profile: gr.OAuthProfile | None, oauth_token: gr.OAuthToken |
28
  return print(f'{profile.username}: {org_names}')
29
 
30
 
31
- def compile_model(model_name, sram_size, tensor_size, optimize, model_loc, clock):
32
 
33
  if oauth_info['token'] is None:
34
  return "ERROR - please log into HuggingFace to continue"
@@ -36,30 +36,31 @@ def compile_model(model_name, sram_size, tensor_size, optimize, model_loc, clock
36
  # Create a temporary directory
37
  with tempfile.TemporaryDirectory() as out_dir:
38
  print(f"Created temporary directory: {out_dir}")
 
 
 
39
 
40
  # Run the model fitter
41
- results = sr100_model_compiler.sr100_model_compiler(
42
  model_file=model_name,
43
- output_dir=f"{out_dir}",
44
- model_loc=model_loc,
45
- optimize=optimize,
46
- arena_cache_size=int(float(tensor_size)*1.0e6)
47
  )
48
  print(results)
49
 
50
  # Analyze the model
51
- default_config = sr100_model_compiler.sr100_default_config()
52
 
53
- default_config['sram_size'] = int(float(sram_size)*1.0e6)
54
- default_config['core_clock'] = int(float(clock)*1.0e6)
55
- success, perf_data = sr100_model_compiler.sr100_check_model(results=results, config=default_config)
56
 
57
  output_text = ''
58
  if success:
59
  output_text = 'SUCCESS, model fits on SR100'
60
  else:
61
  output_text = 'FAILULRE model does not fit on SR100'
62
- for key, value in perf_data.items():
63
  output_text += f'<br>{key} = {value}'
64
 
65
  # try:
@@ -74,12 +75,6 @@ def compile_model(model_name, sram_size, tensor_size, optimize, model_loc, clock
74
  # Get all available models
75
  model_choices = glob.glob('models/*.tflite')
76
 
77
- def update_sliders(sram_slider_value, tensor_slider_value):
78
-
79
- if tensor_slider_value >= sram_slider_value:
80
- tensor_slider_value = sram_slider_value-0.1
81
- return gr.update(value=tensor_slider_value)
82
-
83
  with gr.Blocks() as demo:
84
  gr.LoginButton()
85
  text1 = gr.Markdown("SR100 Model Compiler - Compile a tflite model to SR100")
@@ -87,11 +82,8 @@ with gr.Blocks() as demo:
87
 
88
  # Setup model inputs
89
  with gr.Row():
90
- sram_slider = gr.Slider(minimum=0, maximum=3, step=0.1, label="Set total SRAM size available in MB", value=3)
91
- tensor_slider = gr.Slider(minimum=0, maximum=3, step=0.1, label="Set the SRAM size for tensor calculations in MB", value=1.5)
92
- clock_slider = gr.Slider(minimum=100, maximum=400, step=10, label="Sets core clock frequeny (MHz)", value=400)
93
- optimize = gr.Radio(choices=["Performance", "Size"], value='Performance', label='Performance model')
94
- model_loc = gr.Radio(choices=["sram", "flash"], value="sram", label='Model weights target')
95
 
96
  # Setup model compile
97
  model_dropdown = gr.Dropdown(
@@ -105,8 +97,7 @@ with gr.Blocks() as demo:
105
  compile_text = gr.Markdown("Waiting for model results")
106
 
107
  # Compute options
108
- compile_btn.click(compile_model, inputs=[model_dropdown, sram_slider, tensor_slider, optimize, model_loc, clock_slider], outputs=[compile_text])
109
- sram_slider.change(fn=update_sliders, inputs=[sram_slider, tensor_slider], outputs=tensor_slider)
110
  demo.load(get_oauth_info, inputs=None, outputs=user_text)
111
 
112
  if __name__ == "__main__":
 
28
  return print(f'{profile.username}: {org_names}')
29
 
30
 
31
+ def compile_model(model_name, vmem_value, lpmem_value):
32
 
33
  if oauth_info['token'] is None:
34
  return "ERROR - please log into HuggingFace to continue"
 
36
  # Create a temporary directory
37
  with tempfile.TemporaryDirectory() as out_dir:
38
  print(f"Created temporary directory: {out_dir}")
39
+
40
+ vmem_size_limit = int(vmem_value * 1024)
41
+ lpmem_size_limit = int(lpmem_value * 1024)
42
 
43
  # Run the model fitter
44
+ sucess, results = sr100_model_compiler.sr100_model_optimizer(
45
  model_file=model_name,
46
+ vmem_size_limit=vmem_size_limit,
47
+ lpmem_size_limit=lpmem_size_limit
 
 
48
  )
49
  print(results)
50
 
51
  # Analyze the model
52
+ #default_config = sr100_model_compiler.sr100_default_config()
53
 
54
+ #default_config['sram_size'] = int(float(sram_size)*1.0e6)
55
+ #default_config['core_clock'] = int(float(clock)*1.0e6)
56
+ #success, perf_data = sr100_model_compiler.sr100_check_model(results=results, config=default_config)
57
 
58
  output_text = ''
59
  if success:
60
  output_text = 'SUCCESS, model fits on SR100'
61
  else:
62
  output_text = 'FAILULRE model does not fit on SR100'
63
+ for key, value in results.items():
64
  output_text += f'<br>{key} = {value}'
65
 
66
  # try:
 
75
  # Get all available models
76
  model_choices = glob.glob('models/*.tflite')
77
 
 
 
 
 
 
 
78
  with gr.Blocks() as demo:
79
  gr.LoginButton()
80
  text1 = gr.Markdown("SR100 Model Compiler - Compile a tflite model to SR100")
 
82
 
83
  # Setup model inputs
84
  with gr.Row():
85
+ vmem_slider = gr.Slider(minimum=0, maximum=1.5, step=0.1, label="Set total VMEM SRAM size available in MiB", value=1.5)
86
+ lpmem_slider = gr.Slider(minimum=0, maximum=1.5, step=0.1, label="Set total LPMEM SRAM size in MiB", value=1.5)
 
 
 
87
 
88
  # Setup model compile
89
  model_dropdown = gr.Dropdown(
 
97
  compile_text = gr.Markdown("Waiting for model results")
98
 
99
  # Compute options
100
+ compile_btn.click(compile_model, inputs=[model_dropdown, vmem_slider, lpmem_slider], outputs=[compile_text])
 
101
  demo.load(get_oauth_info, inputs=None, outputs=user_text)
102
 
103
  if __name__ == "__main__":