Make per-profile GPU reserve configurable without changing existing defaults
This commit is contained in:
@@ -25,6 +25,16 @@ class WorkerTests(unittest.TestCase):
|
||||
self.worker.ensure(self.profile)
|
||||
args=launch.call_args.args[0];env=launch.call_args.kwargs['env']
|
||||
self.assertEqual(env['CUDA_VISIBLE_DEVICES'],'gpu-first,gpu-second');self.assertEqual(args[args.index('--tensor-split')+1],'85,15');self.assertIn('--kv-unified',args);self.assertIn('--fit-print',fit.call_args.args[0]);self.assertEqual(self.worker.status()['state'],'ready')
|
||||
def test_reserve_modes_control_full_gpu_boundary(self):
|
||||
for mode,reserve,passes in [('auto',{},False),('none',{},True),('manual',{'gpu-first':50,'gpu-second':200},True),('manual',{'gpu-first':200,'gpu-second':200},False)]:
|
||||
self.profile['parameters'].update(gpu_offload='full',gpu_reserve_mode=mode,gpu_reserve_mib=reserve)
|
||||
with self.patches(),patch('inference.probe',return_value=self.gpus),patch('inference.cgroup_headroom',return_value=32*1024**3),patch.object(self.worker,'_fit_command',return_value='CUDA0 14900 0 0\nCUDA1 4000 0 0\nHost 512 0 256\n') as fit,patch('inference.subprocess.Popen') as launch:
|
||||
if passes:self.worker.plan(self.profile)
|
||||
else:
|
||||
with self.assertRaises(InferenceError):self.worker.plan(self.profile)
|
||||
launch.assert_not_called()
|
||||
self.assertEqual(self.worker.memory_plan['gpus'][0]['reserve_mib'],0 if mode=='none' else 512 if mode=='auto' else reserve['gpu-first'])
|
||||
self.assertEqual(fit.call_count,1)
|
||||
def test_mtp_requires_adapter_before_loading(self):
|
||||
self.profile['parameters']['mtp']=True
|
||||
with patch('inference.subprocess.Popen') as launch:
|
||||
|
||||
Reference in New Issue
Block a user