Tôi đã thấy rất nhiều ấn phẩm trong các tạp chí Vật lý tính toán sử dụng các số liệu khác nhau để thực hiện mã của họ. Đặc biệt đối với mã GPGPU, dường như có rất nhiều kết quả về thời gian mà mọi người công bố. Cụ thể, tôi đã thấy:
- So sánh (về cơ bản) chạy
time
trên các phiên bản GPU và CPU và báo cáo trung bình - So sánh dữ liệu lược tả trên từng chức năng GPU / CPU được gọi (vì vậy thời gian chạy
main
và tất cả các chức năng được gọi từ nó, nhưng bỏ qua thời gian khởi tạo trình điều khiển) - So sánh dữ liệu lược tả cho một số chức năng có liên quan, bỏ qua những thứ như chuyển bộ nhớ (trên bus PCI-E trong trường hợp này), I / O vào đĩa, chuyển đổi dữ liệu từ định dạng này sang định dạng khác, v.v.
- So sánh dữ liệu lược tả chỉ cho một chức năng (ví dụ, chỉ so sánh thời gian thực hiện cập nhật spin trong CPU so với GPU Quantum Monte Carlo) và bỏ qua những thứ như thời gian chuyển bộ nhớ, I / O sang đĩa, thiết lập Hamilton / chéo , Vân vân
Cảm giác của tôi là lựa chọn đầu tiên là 'trung thực' nhất trong bốn người, mặc dù tôi cũng có thể thấy công trạng của thứ hai và thứ ba. Thật là hơi vô lý khi báo cáo chênh lệch thời gian chạy là 5s khi 4,99 trong số đó là sự khác biệt trong triển khai I / O giữa các ngôn ngữ hoặc Infiniband so với Gigabit. Tùy chọn cuối cùng có vẻ hơi "sơ sài" đối với tôi, vì trừ khi chức năng này là điểm đau của toàn bộ thông tin báo cáo về chương trình về nó sẽ không phản ánh hiệu suất mà ai đó sao chép kết quả của tôi sẽ thấy. Những cách tiếp cận nào là thẳng thắn hơn? Lý tưởng nhất là một bài báo có chứa tất cả những điều này nhưng trong trường hợp giới hạn về số liệu / chiều dài, đó là / có giá trị nhất, trung thực và có liên quan để cung cấp?