https://blog.fosketts.net/2011/07/06/defining-failure-mttr-mttf-mtbf/
Chapter 2
- Traditionally, designers of memory hierarchies focused on optimizing average memory access time, which is determined by the cache access time, miss rate, and miss penalty. More recently, however, power has become a major consideration
- six basic way to reduce optimazation
- Larger block size to reduce miss rate
- Bigger caches to reduce miss rate
- Higher associativity to reduce miss rate
- Multilevel caches to reduce miss penalty
- Giving priority to read misses over writes to reduce miss penalty
- Avoiding address translation during indexing of the cache to reduce hit time
- Caches must cope with the translation of a virtual address from the processor to a physical address to access memory
- Something obscure
Chapter 3
- instruction-Level Parallelism: Concepts and Challenges
- A hazard exists whenever there is a name or data dependence between instructions, and they are close enough that the overlap during execution would change the order of access to the operand involved in the dependence
- Data Dependences
- data dependence conveys three things:
- the possibility of a hazard
- the order in which results must be calculated
- an upper bound on how much parallelism can possibly be exploited
- A dependence can be overcome in two different ways
- maintaining the dependence but avoiding a hazard
- eliminating a dependence by transforming
- data dependence conveys three things:
- Name Dependences
- A name dependence occurs when two instructions use the same register or memory location, called a name, but there is no flow of data between the instructions associated with that name
2.
Chapter 4
If you were plowing a field, which would you rather use: two strong oxen or 1024 chickens?
- A name dependence occurs when two instructions use the same register or memory location, called a name, but there is no flow of data between the instructions associated with that name
2.
- Data Dependences
- A hazard exists whenever there is a name or data dependence between instructions, and they are close enough that the overlap during execution would change the order of access to the operand involved in the dependence
- introduction
- perhaps the biggest advantage of SIMD versus MIMD is that the programmer continues to think sequentially yet achieves parallel speedup by having parallel data operations
- This chapter covers three variations of SIMD: vector architectures, multimedia SIMD instruction set extensions, and graphics processing units (GPUs)
- Vector Architecture 1.
3.
- Graphics Processing Units
- Programming the GPU
- Thus the design of GPUs may make more sense when architects ask, given the hardware invested to do graphics well, how can we supplement it to improve the performance of a wider range of applications?
- In addition to the identifier for blocks (blockIdx) and the identifier for each thread in a block (threadIdx), CUDA provides a keyword for the number of threads per block (blockDim), which comes from the dimBlock parameter in the preceding bullet
// Invoke DAXPY with 256 threads per Thread Block __host__ int nblocks = (n+ 255) / 256; daxpy<<<nblocks, 256>>>(n, 2.0, x, y); // DAXPY in CUDA __global__ void daxpy(int n, double a, double *x, double *y) { int i = blockIdx.x*blockDim.x + threadIdx.x; if (i < n) y[i] = a*x[i] + y[i]; }
- NVIDIA GPU Computational Structures
- A Grid is the code that runs on a GPU that consists of a set of Thread Blocks. 2.
- Programming the GPU
Chapter 6
The datacenter is the computer.
- introduction
- shared many goals and requirements
- Cost-performance
- Energy efficiency
- Dependability via redundancy
- Network I/O
- Both interactive and batch processing workloads
- not shared with server architecture
- Ample parallelism
- Operational costs count
- Location counts
- Computing efficiently at low utilization 5.
- shared many goals and requirements
Chapter 7
- introduction
Moore’s Law can’t continue forever … We have another 10 to 20 years before we reach a fundamental limit
- Guidelines for DSAs
- Use dedicated memories to minimize the distance over which data is moved
- Invest the resources saved from dropping advanced microarchitectural optimizations into more arithmetic units or bigger memories
- Use the easiest form of parallelism that matches the domain
- Reduce data size and type to the simplest needed for the domain
- Use a domain-specific programming language to port code to the DSA
- Example Domain: Deep Neural Networks
Appendix M
Those who cannot remember the past are condemned to repeat it
External links
SIMD wiki introduction to cuda
Questions
- what’s MIMD, hardware examples needed !
Words
catapult coalescing scratchpad dissertation knack stewardship jurisdiction photon outage flaky anomaly oxen predate heterogeneous genealogy jargon attest
- 需要真正的理解这一本书的内容 ? 讨论才是最好的阅读方法 create a repo and make issues for it !
- 可以书写代码吗 ?
- 后面的链接可以继续阅读吗 ?
- coperate make sense !
- Reading material
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。