kullanarak CRC64'ün farklı uygulamalarını kontrol ettim. Örneğin, this, this ve this. Tüm bunlarla ilgili sorun, baytlarla çalıştıklarıdır. Ancak, 64 bit sistemde long
(8 bayt) ile çalışmak istiyorum. Bu sayede daha az yineleme yapmam gerekecek. Örneğin, bir byte
kullanarak 128 bayt verileri için 128 kez yinelemeliyim, long
ile, yalnızca 16 kez yinelemeliyim.CRC sağlama toplamı uzun (64 bit)
long
veya byte daha büyük bir kelime bile büyüklüğünü kullanan herhangi CRC64 uygulaması var mı? Bu şemalar bunu yapmak için değiştirilebilir mi?
, GCC sizin döngü göz önüne sermek ve hatta mümkünse 128 bit XMM kayıtlarını kullanılacak en olasıdır. Bu nedenle, kodun körü körüne optimize edilmesini sağlamak için zaman harcamanızdan önce - derleyicinizin ne yaptığını kontrol edin. –
Ya, ancak hesaplama, vektörleştirilebileceğini düşünmediğim döngüseldir. – pythonic
Derleyiciden daha akıllı olmaya çalışmadan önce, ne kadar akıllı olduğunu kontrol edin. GCC birçok döngü analizi gerçekleştirir, bunlardan bazıları hiç duymadığınızdan eminim. Döngüsel hesaplama için bile bir döngüyü (belirli koşullar altında) yapabilir. Sizin durumunuzda olduğunu söylemiyorum ama kendi optimizasyonlarınızla devam etmeden önce kontrol etmeniz gerekiyor. –