- 博客(9)
- 收藏
- 关注
原创 Conflict Misses in Direct-Mapped Caches
Conflict misses are common in real programs and can cause baffling performance problems. Conflict misses in direct-mapped caches typically occur when programs access arrays whose sizes are a power o
2013-11-28 18:12:43 760
原创 Exhibiting Good Locality in Your Programs
Well written computer programs tend to exhibit good locality. That is, they tend to reference data items that are near other recently referenced data items, or that were recently referenced themselves
2013-11-27 21:06:52 595
原创 Writing Code Suitable for Implementation with Conditional Moves
The effect of a mispredicted branch can be very high, but the branch prediction logic found in modern processors is very good at discerning regular patterns and long-term trends for the different b
2013-11-25 18:31:37 608
原创 Further Optimizations Exploiting the Microarchitecture of the Processor
In the prior essay Transforming an Abstract Program into More Efficient Code Systematically, we applied optimizations that did not rely on any features of target machine. They simply reduced the ov
2013-11-23 22:50:05 755
原创 Transforming an Abstract Program into More Efficient Code Systematically
We will use a running example based on the vector data structure from Ref. 1. The structure is declared as follows:typedef int data_t;#define IDENT 1#define OP *typedef struct { long int le
2013-11-22 22:58:42 819
原创 Two Optimization Blockers Limiting the Compiler to Generate Optimized Code
Modern compilers employ sophisticated algorithms to determine what values are computed in a program and how they are used[1]. However, compilers apply only safe optimizations to a program, and constra
2013-11-20 22:38:17 1795
原创 Assembly-Level Representation of Programs on IA32 and x86-64
Below is the C code for example.long example(long* xp, long y){ long t = *xp + y; *xp = t; return t;}
2013-11-14 14:08:11 806
原创 Bit-level Difference between Float and Double
Here is a segment of C++ code.#include "stdafx.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ double sum1=0; for (double i=0.01f; i<=1.0f; i+=0.01f) { sum1 += i;
2013-11-04 21:03:12 616
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人