@EastonMan 看的新闻
+碎碎念
+膜大佬
+偶尔猫猫
+伊斯通听的歌
#今日看了什么
https://lists.riscv.org/g/tech-profiles/topic/rvi_bod_decision_regarding/102522954

In particular, RVI made GC the defacto standard back in 2016 and reaffirmed C as mandatory in RVA profiles up through this past year. The BoD discussion was led by Dave Patterson. They felt it was important to resolve this now and not let the discussion continue. The BoD felt that not only was this the right decision but that other parties were already using this discussion to proclaim RISC-V fragmentation and lack of dependability.

The BoD has sent a strong message that unless there is something catastrophic (e.g. a security issue -- which we have none), that they want RVI members to honor the bond of RVI's word for items like this that are published as mandatory in profiles.
新桌面摆件:普惠pw4000的高压压气机stage9叶片,曾服役于一架B747
Daniel Lemire's blog
Science and Technology links (November 12 2023)

1.
1. Vitamin K2 supplements might reduce the risk of myocardial infarction (heart attacks) and of all-cause death (Hasific et al. 2022). You find vitamin K2 in some Gouda cheeses and in eggs.
2. Most of the water on Earth is salinated (in the oceans) and cannot be consumed. Fresh water is often scarce. Yet Israel is desalinating water for less than a dollar per cubic meter.
3. People living in South America engaged in warfare for 10,000 years before the arrival of the Europeans (Standen et al. 2023).
4. The last glacial period ended about 12,000 years ago and last about 100,000 years. About 26,000 years ago, all of Canada was covered by a permanent ice sheet. Thus many of us were taught in school that human beings first colonized America about 12,000 years ago by the Bering land bridge, that existed back then between modern-day Russia and modern-day Alaska. The evidence accumulates that there were human beings in America much earlier than initially thougth. They would have been present 21,000 to 23,000 years ago in New Mexico. We even have their footprints.
5. As recently as 20,000 years ago—not long in geological terms—Britain was not, in fact, an island. Instead, the terrain that became the British Isles was linked to mainland Europe by Doggerland, a tract of now-submerged territory where early Mesolithic hunter-gatherers lived, settled and traveled (McGreevy, 2020). Correspondly, there were human beings in Ireland 31,000 years ago.
6. Gray et al. (2023) argue that the limited freedom that children enjoy in our modern societies is leading to a rise in mental disorders.
7. Most people cannot understand the bat and ball problem, even after the solution is given. The problem can be stated as follows: “A bat and a ball cost $1.10 in total. The bat costs $1.00 more than the ball. How much does the ball cost?”
8. When hiring, we find a slight bias in favour of females in male-dominated fields, and a strong bias in favour of females in female-dominated fields (Schaerer et al., 2023). Overall, people greatly overestimate gender biases in hiring.
9. Retinol, a common cosmetic product, keeps one’s skin younger.
10. Unwarranted financial optimism might be the result of low cognitive abilities.

source
想想你日常生活中用的是狗屁论文,还是能跑的代码
BIRD Linux LLVM GCC Rocket真的能跑
ASPLOS ISCA MICRO 废纸一张
这不比什么狗屁论文好多了
内容:Soha为第一作者、我为第二作者向BIRD(BIRD Internet Routing Daemon)提交的关于OSPF路由协议的patch在昨天被社区接收了。这是我们团队首次在路由协议软件中做出贡献。此前,我们团队曾多次向Linux内核、LLVM编译器、GCC编译器、gem5模拟器、Rocket处理器核等社区提交过多份patch并获得接收。
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:
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
Easton Man's Channel
这书不错,比姚永斌那本新,近年来的论文基本也有覆盖,适合学习更加进阶一点2010年以后的技术
感觉可以当综述论文来看,前端覆盖得比较全了。比较遗憾的是访存和缓存很少(也许这就是为什么国内没有M3)
Easton Man's Channel
Photo
这书不错,比姚永斌那本新,近年来的论文基本也有覆盖,适合学习更加进阶一点2010年以后的技术
Back to Top