c++ 5

Llama.cpp 30B는 이제 6GB의 RAM으로만 실행됩니다.

이 문서는 가중치 로딩 속도를 10~100배 빠르게 하는 파일 형식 변경에 대한 풀 리퀘스트입니다. 파일 형식을 수정하여 읽기() 또는 복사할 필요 없이 가중치를 메모리로 직접 mmap()할 수 있도록 변경했습니다. 이렇게 하면 커널이 추론 프로세스에서 파일 캐시 페이지에 직접 액세스할 수 있고 파일 캐시 페이지가 퇴거될 가능성이 훨씬 줄어듭니다. 새로운 파일 형식은 LLaMA 7b와 같은 단일 파일 모델과 LLaMA 13B와 같은 다중 파일 모델을 지원합니다. 이제 Python 도구는 foo.1, foo.2 등의 파일을 다시 단일 파일로 병합하여 매핑하는 C++ 코드가 매번 데이터를 재구성할 필요가 없도록 합니다. 이 변경으로 텐서가 32바이트 경계에 올바르게 정렬되어 일부 마이크로프로세서에서 추가적인..

Hacker News 2023.04.01

SQLite를 사용한 가장 미친 짓: 부분 파일 중복 제거

이 게시물의 작성자는 부분적인 파일 중복 제거를 위해 SQLite를 사용한 방법을 설명합니다. Apple 파일 시스템에는 데이터 중복 제거 기능이 일부 지원되므로 추가 디스크 공간을 사용하지 않고도 파일의 복사본 복제본을 만들 수 있다고 설명합니다. 저자는 동일한 게임 엔진을 사용하는 여러 게임이 공통적으로 많은 지원 파일을 가지고 있는 경우가 많기 때문에 이 기능을 게임 볼륨에 사용하고자 했습니다. 이를 추적하는 것은 어렵지 않다고 설명하지만 부분적으로 일치하는 경우는 어떨까요? 그런 다음 저자는 크기 및 콘텐츠 해시 열이 있는 파일 테이블과 각 파일의 각 할당 블록 해시가 있는 블록 테이블을 포함하는 데이터베이스의 최종 설계에 대해 설명합니다. 또한 해시 값이 64비트로 잘린 암호화 해시이며 정수로 ..

Hacker News 2023.03.27

우수한 프로그래머를 식별하는 데 있어 코드 스타일이 미치는 영향 살펴보기(2022)

이 논문에서는 코드 스타일이 우수한 프로그래머를 식별하는 데 사용될 수 있는지 살펴봅니다. 이 연구는 Google 코드 잼 콘테스트의 C++ 솔루션을 대상으로 진행되었습니다. 스타일 클러스터가 존재하는지, 그리고 좋은 프로그래머가 스타일 클러스터에 속할 수 있는지 알아보기 위해 t-SNE 및 계층적 응집 클러스터링과 같은 클러스터링 기법을 사용했습니다. 4개의 스타일 클러스터가 발견되었지만, 우수한 프로그래머를 특정 클러스터와 연관시킬 수는 없었습니다. 그러나 지도 머신러닝은 스타일 속성을 사용하여 좋은 프로그래머를 예측할 수 있음을 보여주었습니다. 균형 잡힌 랜덤 포레스트는 0.650의 리콜, 0.511의 매크로-F1, 0.695의 AUC-ROC로 가장 좋은 결과를 도출했습니다. 이 결과는 코드 스타일..

Hacker News 2023.02.11

새니타이저는 내가 C++로 작성한 두 가지 버그를 찾을 수 있습니까?

이 문서에서는 버그를 방지하기 위해 C++ 코드를 삭제하는 것의 중요성에 대해 설명합니다. 정적 분석 도구를 사용하여 오류를 찾고, 코드 검토 프로세스를 사용하고, 자동화된 테스트를 사용하여 코드를 삭제하는 방법을 설명합니다. 이 문서에서는 버퍼 오버플로, 메모리 누수 및 잘못된 형식 변환과 같은 코드 삭제를 통해 피할 수 있는 일반적인 C++ 버그의 예도 제공합니다. 마지막으로 이 기사는 프로그램이 안전하고 신뢰할 수 있도록 코드를 삭제하는 것의 중요성을 강조합니다. https://ahelwer.ca/post/2023-02-07-cpp-bugs-sanitized/

Hacker News 2023.02.08