Using Mat-Mul Instructions, like Arm SME and Intel AMX
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 18/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- hpc, performance
Hướng nghiên cứu
Bắt đầu bằng cách xem xét phép giảm hai giai đoạn được đề xuất bằng phép nhân ma trận-vectơ và các ràng buộc của Arm SME và Intel AMX được mô tả trong issue. Sau đó, kiểm tra pull request SimSIMD được tham chiếu để xem ngữ cảnh triển khai liên quan. Hoàn thành có nghĩa là có một triển khai được xác định và benchmark cho cách tiếp cận này, nhưng issue không nêu tên các tệp hoặc bài kiểm thử trong repository.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Array reductions can be represented as a two-stage pipeline built on top of matrix-vector multiplications, where the vector is made of all ones.
Let's say our hardware supports fast 16 by 16 matrix multiplications with a single instruction. We can reshape the input array of length $N$ as a matrix of $16$ rows and $N/16$ columns, and use a tiled matrix-multiplication instruction sliding through that wide matrix, multiplying it by a $16$-element vector of ones, and accumulating into $16$ other floats.
In reality, we can't user Intel AMX with float32 inputs, but we can use Arm SME, and later apply similar techniques to SimSIMD.
- Ngôn ngữ chính
- C++
- Star
- 119
- Fork
- 10
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ashvardanian/ParallelReductionsBenchmark
-
Add Python benchmarks for the new CUDA DSL/JITCó thể làm lại được @AnshSinghSonkhia đã nhận 448 ngày trước và không có pull request nào đang mở. Đang mởgood first issue help wanted
ashvardanian/ParallelReductionsBenchmark#9 · 2 bình luận · 1 người được giao ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
-
POSIX thread-pool for NUMAĐang mởenhancement good first issue
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
ashvardanian/ParallelReductionsBenchmark#7 · 1 reaction ·
-
Add support for partial buildsĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
ashvardanian/ParallelReductionsBenchmark#1 · 1 bình luận · 1 reaction ·
Tất cả issue của ashvardanian/ParallelReductionsBenchmark
Issue tương tự
-
nth_root does not restore the rounding mode and can return an upper bound below the true rootĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
1 type: problem 2 scope: firmware 3 good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
SpaceTeam/STS1_COBC_SW#511 ·
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
imaaiagent/fumi#3 ·
-
[Performance]: Beam search re-materializes Result.output_token_ids from pybind once per beamĐang mởGeneral perf
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
NVIDIA/TensorRT-LLM#20236 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
E3SM-Project/mam4xx#603 ·
Maintainer thường phản hồi trong vòng 1 ngày