Theo tài liệu, một hỗ trợ nguyên tử T có kiểu số nguyên, loại điều tra hoặc loại con trỏ. Intel TBB có hỗ trợ phao/đôi chính thức không? Tôi đã thấy một số bản vá lỗi here và bởi Raf Schietekat here, có thể/có thể không được tích hợp vào bản phát hành 4.0 mới nhất. Từ các bản vá lỗi tôi đã đọc qua, sự khác biệt lớn duy nhất tôi nhận thấy là việc bổ sung reinterpret_cast từ kiểu số nguyên vào float/double. Nếu bất cứ ai có thể làm rõ điều này, tôi sẽ đánh giá cao nó. Cảm ơn!Nguyên tử đôi/phao nổi trong Intel TBB
Trả lời
Bạn có thể dễ dàng thêm hỗ trợ cho các số dấu phẩy động xây dựng trên các số nguyên nguyên 64 và 32 bit. Tải nguyên tử/lưu trữ/trao đổi có thể được thực hiện dưới dạng trình bao bọc trực tiếp bằng cách sử dụng reinterpret_cast, các phép tính số học nguyên tử có thể được thực hiện bằng cách sử dụng vòng lặp với trao đổi so sánh nguyên tử.
C++ 11 hỗ trợ phao nguyên tử và tăng gấp đôi. Tuy nhiên, các hàm số học như std::atomic_fetch_add
chỉ được hỗ trợ cho các loại tích phân.
Nếu bạn có trình biên dịch C++ 11, tôi khuyên bạn nên chuyển sang std::atomic
để bạn không phải dựa vào hành vi không có giấy tờ.
Thử nghiệm cho các loại không tách rời trong test_atomic.cpp đã được thêm vào năm 2008 (ngay sau thời điểm thảo luận với Raf). Vì vậy kể từ khi còn sớm hơn thời gian của câu hỏi, TBB hỗ trợ float & nguyên tử kép (mặc dù bị hạn chế chỉ fetch_and_store và compare_and_exchange chỉ đọc-sửa-viết ops).
- 1. Giấy phép TBB Intel
- 2. Intel TBB vs Boost
- 3. Intel TBB: pool of graphs
- 4. Intel TBB dành cho Android và iOS
- 5. Số lượng chủ đề được sử dụng bởi Intel TBB
- 6. C++ 0x thực hiện mẫu nguyên tử
- 7. hình ảnh hệ thống nguyên tử intel x86 trong trình quản lý sdk android là gì?
- 8. Công cụ scalable_allocator của Intel TBB hoạt động như thế nào?
- 9. pthread vs TBB intel và mối quan hệ của chúng với OpenMP?
- 10. Làm cách nào để cài đặt Intel TBB trên OS X?
- 11. đơn giản TBB dụ
- 12. Erlang: nguyên tử hay nguyên
- 13. iinc nguyên tử trong Java?
- 14. Operations nguyên tử trong C++
- 15. cho các lệnh x86 nguyên tử
- 16. cách làm nổi cho số nguyên trong awk
- 17. Giá trị nguyên của loại thả nổi trong C
- 18. ++ nguyên tử cho std :: nguyên tử <int>
- 19. writeToFile: nguyên tử: ý nghĩa của nguyên tử là gì?
- 20. Sự khác biệt giữa nguyên tử trong Lisp thường và nguyên tử trong Clojure là gì?
- 21. Xác định vị trí quấn trong các phần tử nổi
- 22. Có phải tăng số nguyên nguyên tử trong x86 không?
- 23. Là + =, | =, & = v.v ... nguyên tử?
- 24. Là fwrite nguyên tử?
- 25. Hoán đổi nguyên tử trong GNU C++
- 26. nguyên tử trong 32/64 bit
- 27. Sao chép tệp nguyên tử trong .NET
- 28. Hoạt động nguyên tử trong ARM
- 29. Tắt Siêu phân luồng trong Intel Xeon
- 30. thủ thuật cho các phần tử nổi bên trong các phần tử danh sách
Cũng đáng chú ý là các hàm số học có thể được mô phỏng một cách dễ dàng và hiệu quả với 'std :: atomic'. –
Thú vị. Cách tốt nhất để làm điều đó là gì? Nó là một vòng lặp so sánh và trao đổi? (Lấy giá trị hiện tại và cố gắng trao đổi nó với kết quả mới. Nếu nó không thành công vì giá trị đã được thay đổi, thử lại.) –
Đúng, đó là cách. –