Effect And Analysis of Elastic Fidelity Computing On GPUs
Upcoming SlideShare
Loading in...5
×
 

Effect And Analysis of Elastic Fidelity Computing On GPUs

on

  • 93 views

Research work on elastic fidelity computing on GPUs.

Research work on elastic fidelity computing on GPUs.

Statistics

Views

Total Views
93
Views on SlideShare
89
Embed Views
4

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 4

http://www.slideee.com 4

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Effect And Analysis of Elastic Fidelity Computing On GPUs Effect And Analysis of Elastic Fidelity Computing On GPUs Presentation Transcript

  • Department of Electrical Engineering and Computer Science Effect And Analysis of Elastic Fidelity Computing on GPUs Chetan Patil
  • Department of Electrical Engineering and Computer Science Power Is Free, Transistors Are Not
  • Department of Electrical Engineering and Computer Science Transistors Are Free, Power Is Not
  • Department of Electrical Engineering and Computer Science POWER & GPU • Many many core GPUs • Steadily rising power consumption requirements • Important to balance both performance and power How ? • In/Efficient Hardware • In/Efficient Software
  • Department of Electrical Engineering and Computer Science Software Approach: Elastic Fidelity • Lowering the operational voltage beyond a point will experience faulty operation. • Not all computations and all data need to maintain 100% accuracy. Spot the difference.
  • Department of Electrical Engineering and Computer Science Software Approach: Elastic Fidelity • Elastic Fidelity exploits this observation by occasionally relaxing the reliability guarantees of the hardware layer based on the software requirements. [LINK] • For this research Analyze Output Introduce Error Power Model Benchmark
  • Department of Electrical Engineering and Computer Science Power Model: GPUWattch Image Provided By GPUWattch
  • Department of Electrical Engineering and Computer Science Step 1: Run The Benchmarks RODINIA ISPASS2009 BECHMARKS VICTIM
  • Department of Electrical Engineering and Computer Science Step 2: Choose A Benchmark Back Propagation • A machine-learning algorithm that trains the weights of connecting nodes on a layered neural network. • The Forward Phase, in which the activations are propagated from the input to the output layer. • The Backward Phase, in which the error between the observed and requested values in the output layer is propagated backwards to adjust the weights and bias values. • In each layer, the processing of all the nodes can be done in parallel.
  • Department of Electrical Engineering and Computer Science Step 3: Analyze The Benchmark
  • Department of Electrical Engineering and Computer Science Step 4: Introduce The Error #ifndef GPU_FAULTED_CODE w[index] += ((ETA * delta[index_x] * ly[index_y]) + (MOMENTUM * oldw[index])); #else float v1, v2, v3, v4, v5; v1 = faultedMov(faultedMul((faultedMov(ETA,random)) * (faultedMov(delta[index_x],random)),random), random); v2 = faultedMov(faultedMul((faultedMov(v1,random)) * (faultedMov(ly[index_y],random)),random),random); v3 = faultedMov(faultedMul((faultedMov(MOMENTUM,random)) * (faultedMov(oldw[index],random)),random),random); v4 = faultedMov(faultedAdd((faultedMov(v2,random) + faultedMov(v3,random)),random),random); v5 = faultedMov(faultedAdd((faultedMov(w[index],random) + faultedMov(v4,random)),random),random); w[index] = faultedMov(v5,random); #endif #ifndef GPU_FAULTED_CODE oldw[index] = ((ETA * delta[index_x] * ly[index_y]) + (MOMENTUM * oldw[index])); #else float v6, v7, v8, v9; v6 = faultedMov(faultedMul((faultedMov(ETA,random)) * (faultedMov(delta[index_x],random)),random), random); v7 = faultedMov(faultedMul((faultedMov(v6,random)) * (faultedMov(ly[index_y],random)),random),random); v8 = faultedMov(faultedMul((faultedMov(MOMENTUM,random)) * (faultedMov(oldw[index],random)),random),random); v9 = faultedMov(faultedAdd((faultedMov(v7,random) + faultedMov(v8,random)),random),random); oldw[index] = faultedMov(v9,random); #endif
  • Department of Electrical Engineering and Computer Science Step 4: Introduce The Error __device__ float faultedMov(float data,float *randy) { int i; float err; int endBit = END_BIT_CONSTANT; int startBit = START_BIT_CONSTANT; unsigned int *newData = (unsigned int *) &data; for( i = startBit; i<endBit; i++) { int index = (faultArrayIndex++)%RAND_NUMBERS_COUNT; err = randy[index]; if (err*1000000.0 > mov[VOLTAGE-5][i]) { *newData = *newData ^ (1UL<<i); } } return data; }
  • Department of Electrical Engineering and Computer Science Step 5: Output vs Error Rate For 45th Iteration
  • Department of Electrical Engineering and Computer Science Step 5: Output vs Error Rate Lowest : 0.000004
  • Department of Electrical Engineering and Computer Science In Process • Power • Instruction Count • Plot the graph • Choose the next possible benchmark
  • Department of Electrical Engineering and Computer Science Acknowledgement • Prof. Nikos Hardavellas, Northwestern University. • George Tziantzioulis, Ph.D. Student Northwestern University
  • Department of Electrical Engineering and Computer Science Questions?
  • Department of Electrical Engineering and Computer Science Thank You http://chetanpatil.info/talks.html