第三章 從迴圈到網路

2021-08-21 21:27:01 字數 1393 閱讀 4668

#include #include "stdlib.h"

#define n 64

#define tpb 32//每個執行緒塊包含32個執行緒

__device__ float scale(int i, int n)

__device__ float distance(float x1, float x2)

__global__ void distancekernel(float *d_out, float ref, int len)

執行結果:

注:輸出結果的索引不是從0-63依次輸出的。這是序列和並行的乙個根本區別。

在序列應用中,計算在乙個迴圈中按照一定先後順序執行。

在cuda並行中,放棄了對計算順序的部分控制而獲得由成百上千個處理器平行計算提供的計算加速。

kernel.h

#pragma once

void distancearray(float *out, float *in, float ref, int len);

kernel.cu

#include "kernel.h"

#include #define tpb 32

__device__ float distance(float x1, float x2)

__global__ void distancekernel(float *d_out, float *d_in, float ref)

void distancearray(float *out, float *in, float ref, int len)

main.cpp

#include "kernel.h"

#include #define n 64

float scale(int i, int n)

int main()

__device__ float distance(float x1, float x2)

__global__ void distancekernel(float *d_out, float *d_in, float ref)

int main()

distancekernel << > > (out, in, ref);

cudadevicesynchronize();

cudafree(in);

cudafree(out);

system("pause");

return 0;

}

第三章 scala迴圈

1 三個基本的迴圈表示式 scala 1 to 10 res0 scala.collection.immutable.range.inclusive range 1,2,3,4,5,6,7,8,9,10 scala 1.to 10 res1 scala.collection.immutable.ra...

第三章 while迴圈

1 while迴圈就是讓執行的 按照指定的次數重複執行。2 while語句以及縮排部分是乙個完整的 塊。3 運算子 4 在編寫程式時,除特殊要求,否則迴圈的計數從0開始。5 eg 計算 0 100 之間所有數字的累計求和結果 result 0 i 0 while i 100 print i resu...

unix 網路程式設計 第三章

包裹函式 就是對有錯誤返回值的函式的封裝。在unix網路程式設計中用大寫表示。err sys 必須要errno 的值才能輸出錯誤?執行緒函式遇到錯誤的時候 不設定errno的值,而是把error的值作為函式的返回值。必須檢查某個確定的錯誤,並處理它,而不是終止程序執行。unix errno 值 每當...