Skip to content

Commit 33ad04d

Browse files
committed
give up on automating chunk length
for now
1 parent a950341 commit 33ad04d

File tree

3 files changed

+6
-31
lines changed

3 files changed

+6
-31
lines changed

buzzcode/analysis.py

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,6 @@ def translate_results(results, classes, digits=1):
4747
suffix_partial = '_buzzchunk.csv'
4848

4949

50-
def solve_memory(memory_allot, cpus, framehop_prop):
51-
""" given memory allotment, number of processes, and framelength, solve for number of streamer processes, depth of buffer, and chunklength """
52-
memory_remaining = memory_allot
53-
memory_remaining = memory_remaining - (0.350*cpus) # memory (in GB) required for single tensorflow process
54-
55-
memorydensity_audio = 2.4 / 3600 # gigabytes of memory per second of decoded audio (estimate) # TODO: re-test with memory profile; just give best guess at peak memory usage
56-
audio_time_free = memory_remaining/memorydensity_audio
57-
frame_time_free = audio_time_free * framehop_prop
58-
59-
# this is total guesswork. TODO: test! Tune!
60-
concurrent_streamers = (cpus/2).__ceil__() # on SSD, ideal seems to be near cpus/2 (when running with GPU also!)
61-
buffer_max = 3 * cpus
62-
chunks_at_once = concurrent_streamers + buffer_max
63-
64-
chunklength = int(frame_time_free/chunks_at_once)
65-
66-
return concurrent_streamers, buffer_max, chunklength
67-
68-
6950
def melt_coverage(cover_df, framelength=None):
7051
""" where cover_df is a dataframe with start and end columns OR framelength is provided"""
7152
if 'end' not in cover_df.columns and framelength is None:

buzzcode/analyze_audio.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
setthreads(1)
99

1010
from buzzcode.embedders import load_embedder_model, load_embedder_config
11-
from buzzcode.analysis import load_model, translate_results, suffix_result, suffix_partial, solve_memory, melt_coverage, \
11+
from buzzcode.analysis import load_model, translate_results, suffix_result, suffix_partial, melt_coverage, \
1212
get_gaps, smooth_gaps, gaps_to_chunklist, stitch_partial
1313
from buzzcode.audio import stream_to_queue, get_duration
1414
import pandas as pd
@@ -22,7 +22,7 @@
2222
from datetime import datetime
2323

2424

25-
def analyze_batch(modelname, cpus, memory_allot, gpu=False, vram=None, embeddername='yamnet', framehop_prop=1,
25+
def analyze_batch(modelname, chunklength=2000, cpus=2, gpu=False, embeddername='yamnet', framehop_prop=1,
2626
dir_audio=dir_audio_in, verbosity=1):
2727
timer_total = Timer()
2828

@@ -82,12 +82,8 @@ def worker_logger():
8282
framelength_str = re.sub('^.*\\.', '', framelength_str)
8383
framelength_digits = len(framelength_str)
8484

85-
86-
concurrent_streamers, buffer_max, chunklength = solve_memory(
87-
memory_allot=memory_allot,
88-
cpus=cpus,
89-
framehop_prop=framehop_prop
90-
)
85+
concurrent_streamers = 2
86+
buffer_max = 2
9187

9288
if chunklength < framelength:
9389
raise ValueError(f"insufficient memory allotment")
@@ -316,7 +312,7 @@ def analyze_assignment(assignment):
316312
f"input directory: {dir_audio}\n"
317313
f"model: {modelname}\n"
318314
f"CPU count: {cpus}\n"
319-
f"memory allotment {memory_allot}\n",
315+
f"GPU count: {gpu}\n",
320316
0)
321317

322318
proc_writer = multiprocessing.Process(target=worker_writer, name='writer_proc', args=[])
@@ -370,4 +366,4 @@ def analyze_assignment(assignment):
370366

371367

372368
if __name__ == "__main__":
373-
analyze_batch(modelname='model_general', gpu=False, vram=1, cpus=4, memory_allot=10, verbosity=2)
369+
analyze_batch(modelname='model_general', dir_audio='/media/server storage/experiments', gpu=True,cpus=0, verbosity=2)

buzzdetect.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ def str2bool(v):
2525
parser_analyze.add_argument('--modelname', help='the name of the directory holding the model data', required=True,
2626
type=str)
2727
parser_analyze.add_argument('--cpus', required=True, type=int)
28-
parser_analyze.add_argument('--memory', required=True, type=float)
2928
parser_analyze.add_argument('--classes', required=False, type=str) # give as...comma-separated list?
3029
parser_analyze.add_argument('--dir_audio', required=False, default="./audio_in", type=str)
3130
parser_analyze.add_argument('--dir_out', required=False, default=None, type=str)
@@ -65,7 +64,6 @@ def str2bool(v):
6564
analyze_batch(
6665
modelname=args.modelname,
6766
cpus=args.cpus,
68-
memory_allot=args.memory,
6967
dir_audio=args.dir_audio,
7068
verbosity=args.verbosity,
7169
)

0 commit comments

Comments
 (0)