Comments (2)
The symbols you're searching for (e.g. __aarch64_cas4_acq_rel
) are symbols used by -moutline-atomics
to determine at run-time if a LSE (e.g. casal
or a load-store exclusive e.g.ldaxr/stlxr
are used)
0000000000400650 <__aarch64_cas4_acq_rel>:
400650: 90000110 adrp x16, 420000 <getauxval@GLIBC_2.17>
400654: 39409610 ldrb w16, [x16, #37]
400658: 34000070 cbz w16, 400664 <__aarch64_cas4_acq_rel+0x14>
40065c: 88e0fc41 casal w0, w1, [x2]
400660: d65f03c0 ret
400664: 2a0003f0 mov w16, w0
400668: 885ffc40 ldaxr w0, [x2]
40066c: 6b10001f cmp w0, w16
400670: 54000061 b.ne 40067c <__aarch64_cas4_acq_rel+0x2c> // b.any
400674: 8811fc41 stlxr w17, w1, [x2]
400678: 35ffff91 cbnz w17, 400668 <__aarch64_cas4_acq_rel+0x18>
40067c: d65f03c0 ret
When you compile with -mno-outline-atomics
or a compiler that didn't make -moutline-atomics
the default and -march=armv8-a
the compile will just inline the ldaxr/stlxr
in the calling function the symbol you reference above won't be present. (note: GCC 7 in Amazon Linux2 includes back ported patches making -moutline-atomics
the default.
When you compile with -march=armv8.2-a
or with -mcpu=neoverse-n1
similarly a casal
or other LSE atomic will simply be inlined in the caller instead of jumping to the symbols that come from libgcc
which includes the above mentioned __aarcch64_*
functions.
from aws-graviton-getting-started.
Thanks, got it.
from aws-graviton-getting-started.
Related Issues (20)
- [golang] Graviton2 lambda has problem running CGO enabled code HOT 5
- Does Graviton2 support RNG instructions? HOT 2
- Latency Improvement numbers are not matching for common models like BERT when benchmarking graviton vs intel HOT 4
- ModuleNotFoundError after build and run HOT 3
- Cannot run measure_and_plot_basic_sysstat_stats.py HOT 5
- [Python] Numbering of Python guide is off HOT 1
- Neoverse N1 Software Optimization Guide link is broken HOT 2
- bug: EKS cluster running on M7g.large node broke overnight HOT 1
- GCCv13.1 not taking the recommended flag HOT 1
- OpenMPI is built against SGE HOT 1
- ffmpeg performance on graviton3 is not as good as x86 HOT 10
- rocksdb performance benchmark on gravition3, -march is better than -mcpu HOT 5
- [c7g.8xlarge] -mcpu=native vs -mcpu=neoverse-512tvb HOT 2
- Tensorflow Java HOT 3
- Pytorch benchmark for Restnet50 with batch size of 1 on Graviton3 worse than on Intel HOT 5
- c6g specifics within machinelearning/pytorch.md HOT 6
- ECS Exit code: 132 on Graviton3 HOT 12
- Typo in Graviton3(E) performance vs. balanced `-mcpu` flag? HOT 1
- read and write msr HOT 1
- .NET page needs an update HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-graviton-getting-started.