Add configurable MTP and shared-weight draft memory fitting
This commit is contained in:
@@ -25,6 +25,18 @@ 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_mtp_requires_adapter_before_loading(self):
|
||||
self.profile['parameters']['mtp']=True
|
||||
with patch('inference.subprocess.Popen') as launch:
|
||||
with self.assertRaisesRegex(InferenceError,'MTP'):self.worker.ensure(self.profile)
|
||||
launch.assert_not_called()
|
||||
def test_mtp_is_passed_to_fit_and_server(self):
|
||||
self.profile['parameters'].update(mtp=True,mtp_tokens=2,mtp_min_p=.05)
|
||||
(self.root/'runtime/build-id/build/bin/deck-mtp-fit-v1').touch()
|
||||
process=Mock();process.poll.return_value=None;http=Mock();http.getresponse.return_value.status=200
|
||||
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 9000 1000 1000\nCUDA1 2000 1000 1000\nHost 512 0 256\n') as fit,patch('inference.subprocess.Popen',return_value=process) as launch,patch('inference.http.client.HTTPConnection',return_value=http),patch('inference.threading.Thread'):
|
||||
self.worker.ensure(self.profile)
|
||||
args=launch.call_args.args[0];self.assertEqual(args[args.index('--spec-type')+1],'draft-mtp');self.assertEqual(args[args.index('--spec-draft-n-max')+1],'2');self.assertIn('--deck-mtp',fit.call_args.args[0]);self.assertNotIn('--deck-mtp',args)
|
||||
def test_busy_gpu_is_rejected_before_fit_or_spawn(self):
|
||||
self.gpus[0]['processes']=1
|
||||
with patch('inference.probe',return_value=self.gpus),patch('inference.subprocess.Popen') as launch:
|
||||
|
||||
Reference in New Issue
Block a user