generated-computers/locals는 저장소 설명에 'Mac에서 AI 에이전트를 여러 개 한 번에, 약 3배 빠르게'라고 적힌 로컬 실행 도구다. 2026년 11월 5일 커밋 653394a는 프롬프트 청크가 캐시 버퍼의 복사본에 기록되던 문제를 고쳤다.
원인은 MLX의 버퍼 소유 방식이다. mx.eval은 마지막 커맨드 버퍼의 신호에서 반환하지만, 커맨드 버퍼가 읽은 배열은 MLX의 완료 핸들러에서 나중에 다른 스레드로 풀려난다. 그 사이 청크가 캐시 버퍼를 쓰면 주소가 달라진 전체 버퍼 복사본에 쓰여 버리고, GPU가 청크를 버린 뒤 _rewind는 그 지점부터 다시 읽기를 거부했다. 수정은 짧다. locals/hybrid_batch.py의 _read_chunk이 각 시도 직전에 mx.synchronize를 한 번 호출해 버퍼가 비워질 때까지 기다린다.
대기 시간은 약 30마이크로초이고 프롬프트 읽기 속도는 그대로라고 엔진 문서(docs/engine/README.md)는 적는다. macOS 워치독이 일으킨 GPU 드롭을 흉내내는 테스트는 원래 GitHub 러너에서 MLX 버퍼 복사 때문에 건너뛰도록 되어 있었지만, 이번 커밋에서 건너뛰기 제약을 없애 다시 실행된다. 드롭을 흉내내는 코드도 버퍼를 망가뜨리기 전에 먼저 동기화하고, eval을 마친 직후 청크를 쓰는 새 테스트가 추가됐다.
숫자는 모두 프로젝트 문서에 실린 값이다. 프로세스 16개를 돌리는 M2 Pro에서 13개 청크를 60번 읽을 때 7~15번이 복사본에 걸렸고, 마크를 쓰지 않으면 60번 중 3~4번이었다. 대기 이후에는 600번 중 0번이었고, Qwen3.5-4B는 256토큰 단위로 4,096토큰을 읽어 초당 576토큰으로 대기 전후가 같았다. CHANGELOG에는 이 수정이 0.2.3에 아직 공개되지 않은 상태로 남아 있고, 직전 버전 0.2.2는 2026년 11월 4일 배포다. 라이선스와 별 수는 주어지지 않았다. 범위는 Mac의 MLX 경로에서 나타나는 버퍼 소유 경합 하나로 좁고, 속도가 유지된다는 근거는 개발자 측 측정뿐이다. 다른 GPU 환경에서 같은 문제가 나는지는 이 자료만으로 판단하기 어렵다.