ASPLOS ISCA MICRO 废纸一张
这不比什么狗屁论文好多了
内容:Soha为第一作者、我为第二作者向BIRD(BIRD Internet Routing Daemon)提交的关于OSPF路由协议的patch在昨天被社区接收了。这是我们团队首次在路由协议软件中做出贡献。此前,我们团队曾多次向Linux内核、LLVM编译器、GCC编译器、gem5模拟器、Rocket处理器核等社区提交过多份patch并获得接收。
Chips and Cheese
Core to Core Latency Data on Large Systems
#ChipAndCheese
Telegraph | source
(author: clamchowder)
Core to Core Latency Data on Large Systems
#ChipAndCheese
Telegraph | source
(author: clamchowder)
Daniel Lemire's blog
Generating arrays at compile-time in C++ with lambdas
Suppose that you want to check whether a character in C++ belongs to a fixed set, such as ‘\0’, ‘\x09’, ‘\x0a’,’\x0d’, ‘ ‘, ‘#’, ‘/’, ‘:’, ‘<‘, ‘>’, ‘?’, ‘@’, ‘[‘, ‘\\’, ‘]’, ‘^’, ‘|’. A simple way is to generate a 256-byte array of Boolean values and lookup the value. This approach is sometimes called memoization (and not memorization!!!). You might do it as follows:
It is reasonably efficient in practice. Some people might object to how the table is generated. Can you have the C++ compiler generate the array at compile-time from a function?
Using C++17, you might do it with an std::array as follows:
These two approaches should be equivalent in practice.
source
Generating arrays at compile-time in C++ with lambdas
Suppose that you want to check whether a character in C++ belongs to a fixed set, such as ‘\0’, ‘\x09’, ‘\x0a’,’\x0d’, ‘ ‘, ‘#’, ‘/’, ‘:’, ‘<‘, ‘>’, ‘?’, ‘@’, ‘[‘, ‘\\’, ‘]’, ‘^’, ‘|’. A simple way is to generate a 256-byte array of Boolean values and lookup the value. This approach is sometimes called memoization (and not memorization!!!). You might do it as follows:
constexpr static bool is_forbidden_host_code_point_table[] = {
1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
bool is_forbidden_host_code_point(char c) {
return is_forbidden_host_code_point_table[uint8_t(c)];
}
It is reasonably efficient in practice. Some people might object to how the table is generated. Can you have the C++ compiler generate the array at compile-time from a function?
Using C++17, you might do it with an std::array as follows:
constexpr static std::array<uint8_t, 256> is_forbidden_array = []() {
std::array<uint8_t, 256> result{};
for (uint8_t c : {'\0', '\x09', '\x0a','\x0d', ' ', '#', '/', ':',
'<', '>', '?', '@', '[', '\\', ']', '^', '|'}) {
result[c] = true;
}
return result;
}();
bool is_forbidden_host_code_point_array(char c) {
return is_forbidden_array[uint8_t(c)];
}
These two approaches should be equivalent in practice.
source
最近新u好多,我其实比较好奇他们到底用了多少面积。
总给我一种投了很多面积换来的感觉。
总给我一种投了很多面积换来的感觉。
#今日看了什么
Facile: Fast, Accurate, and Interpretable Basic-Block Throughput Prediction
https://arxiv.org/abs/2310.13212
Facile: Fast, Accurate, and Interpretable Basic-Block Throughput Prediction
https://arxiv.org/abs/2310.13212
感觉可以当综述论文来看,前端覆盖得比较全了。比较遗憾的是访存和缓存很少(也许这就是为什么国内没有M3)
这书不错,比姚永斌那本新,近年来的论文基本也有覆盖,适合学习更加进阶一点2010年以后的技术
Arch Linux: Recent news updates
Incoming changes in JDK / JRE 21 packages may require manual intervention
We are introducing a change in JDK/JRE packages of our distro. This is triggered from the way a JRE is build in modern versions of Java (>9). We are introducing this change in Java 21.
To sum it up instead of having JDK and JRE packages coexist in the same system we will be making them conflict. The JDK variant package includes the runtime environment to execute Java applications so if one needs compilation and runtime of Java they need only the JDK package in the future. If, on the other hand, they need just runtime of Java then JRE (or jre-headless) will work.
This will (potentially) require a manual user action during upgrade:
● if you have both JDK and JRE installed you can manually install the JDK with pacman -Sy jdk-openjdk and this removes the JRE related packages.
● if you have both JRE and JRE-headless you will need to choose one of them and install it manually since they would conflict each other now.
● If you only have one of the JDK/JRE/JRE-headless pacman should resolve dependencies normally and no action is needed.
At the moment this is only valid for the upcoming JDK 21 release.
source
(author: Frederik Schwan)
Incoming changes in JDK / JRE 21 packages may require manual intervention
We are introducing a change in JDK/JRE packages of our distro. This is triggered from the way a JRE is build in modern versions of Java (>9). We are introducing this change in Java 21.
To sum it up instead of having JDK and JRE packages coexist in the same system we will be making them conflict. The JDK variant package includes the runtime environment to execute Java applications so if one needs compilation and runtime of Java they need only the JDK package in the future. If, on the other hand, they need just runtime of Java then JRE (or jre-headless) will work.
This will (potentially) require a manual user action during upgrade:
● if you have both JDK and JRE installed you can manually install the JDK with pacman -Sy jdk-openjdk and this removes the JRE related packages.
● if you have both JRE and JRE-headless you will need to choose one of them and install it manually since they would conflict each other now.
● If you only have one of the JDK/JRE/JRE-headless pacman should resolve dependencies normally and no action is needed.
At the moment this is only valid for the upcoming JDK 21 release.
source
(author: Frederik Schwan)
Chips and Cheese
A Brief Look at Apple’s M2 Pro iGPU
#ChipAndCheese
Telegraph | source
(author: clamchowder)
A Brief Look at Apple’s M2 Pro iGPU
#ChipAndCheese
Telegraph | source
(author: clamchowder)
香山成嵌入式了
原来已经有硅出来了,大家还在想怎么赶上M2的时候M2已经被吊锤了。等一会看看M3能不能再来一个戏剧性效果。