C11 / C ++ 11 schwache Speicherbenchmarks

8

Kann irgendjemand auf Benchmark-Ergebnisse verweisen, die die Leistung von C11 / C ++ 11-Code mit entspannten atomaren Operationen vergleichen (insbesondere memory_order_release und memory_order_acquire , aber auch memory_order_consume und memory_order_relaxed ) gegenüber dem Standard memory_order_seq_cst ? Alle Architekturen sind von Interesse. Vielen Dank im Voraus.

    
user2949652 03.11.2013, 11:36
quelle

3 Antworten

1

Ich habe ein bisschen Benchmarking auf ARMv7 gemacht, siehe Ссылка für den Bericht, die Folien für meinen Vortrag bei EuroLLVM und den Seqlock-Code, den ich verwendet habe.

Kurzgeschichte: Im Seqlock-Code war die Acquire / Release-Funktion etwa 40% schneller als die sequenziell konsistente Version.

    
Claude 13.04.2014 07:27
quelle
0

Dies ist vielleicht nicht die beste Lösung, aber bis jetzt habe ich CDSChecker für eine Bank benutzt. Markierung in einem meiner Projekte. Ich habe es noch nicht für komplette Programme verwendet, sondern nur für unabhängige Einheiten.

    
McLoving 28.03.2014 11:00
quelle
0

Für ein bestimmtes Stück Code (eine Work-Stealing Dequeue) fand ich ein sehr nettes Papier , das eine C11-Version mit schwachen Atomics, nur sc-atomics, handoptimiert, bewertet Assembly, und eine falsche Version mit völlig entspannten Atomics. (Zufällig wurde später ein Fehler in der C11-Version des oben erwähnten CD-Checkers gefunden.) Ähnliche Beispiele sind willkommen.

    
user2949652 28.06.2015 14:24
quelle