原创 高性能與並行計算領域一些期刊與會議及資料閱讀列表

IEEE transactions on parallel and distributed systems (TPDS) 主頁:https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumbe

原创 離散卷積及計算

離散卷積的定義: 將兩個離散序列中的數,按照規則,兩兩相乘再相加的操作。 卷積運算: 的長度是 , 的長度是 , 的長度是 計算卷積的過程:序列翻轉,移位,相乘,取和 計算舉例: 其中k等於a的長度。 翻轉移位相乘的操作如下:

原创 TensorCore使用

目前有兩個庫使用了TensorCore技術:cuBLAS與cuDNN。 cuBLAS主要加速了GEMM計算,cuDNN裏主要用來加速卷積和RNN 而如何cuBLAS與cuDNN無法滿足需求,也可以直接調用Tensor Cores進行編程。

原创 循環卷積與線性卷積

循環卷積 針對的是兩個長度都爲N的序列,對兩個序列做FFT,然後再做IFFT得到的結果就是循環卷積,結果的長度也是N。 直接計算步驟: 序列A與序列B,長度都是N,新的序列C 1、把B倒過來。[翻轉] 2、把B向右平移一個元素。最右側的元

原创 日常閱讀期刊列表

IEEE transactions on parallel and distributed systems (TPDS) 主頁:https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumbe

原创 以cufftPlanMany爲例FFT變換中embed,stride,dist的解釋與設置

關於FFT的自定義數據分佈進行變換,之前每次都是用的寫demo,這次搞明白之後記錄一下,以便以後查閱。 比如需要對一個二維數組裏的每一行或者每一列進行傅里葉變換,那麼需要對cufftPlanMany進行設置,然後進行批量處理。 cufft

原创 多GPU編程可能遇到的一些問題

最近在寫一個多GPU編程的程序,按照傳統的寫法寫了之後,程序一直卡在覈函數運行之後,沒有任何輸出 // includes, project #include <cuda_runtime.h> #include <device_launc

原创 MPI_多節點執行程序

 有的時候MPI需要使用多節點,那麼測試哪些進程在哪些機器上就比較重要,如下可以簡單測試一下。 #include <unistd.h> #include <stdio.h> #include <mpi.h> int main (int

原创 MPI_Scatterv 的使用 散發不同大小的數據塊

如果需要將一個進程中的數據分發到不同進程,可以使用這個函數 而每個進程如果需要的數目不同,則需要如下操作: 1.首先根進程得到每個進程需要的數目(通過組收集gather) 2.然後計算髮送的數據不同的偏移(根據每個進程需要的數目計算) 3

原创 MPI_Gatherv 的使用 發送接收不同大小的數據塊

MPI_Gatherv可以從不同進程收集大小不同的數據塊,但是在網上看到的都是發送固定大小,偏移量不同的例子,而官網給出的例子,雖然大小可變,但是需要重新定義數據類型,對於連續數據比較麻煩。 下面的代碼按照如下思路 1.每個進程根據進程號

原创 FFTW程序Demo

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <fftw3.h> 4 #include<string.h> 5 #include <complex.h> 6

原创 Reverse Integer - Palindrome Number - 簡單模擬

第一個題目是將整數進行反轉,這個題實現反轉並不難,主要關鍵點在於如何進行溢出判斷。溢出判斷再上一篇字符串轉整數中已有介紹,本題採用其中的第三種方法,將數字轉爲字符串,使用字符串比較大小的方法進行比較。 代碼如下: 1 class Sol

原创 Longest Substring Without Repeating Characters - 哈希與雙指針

題意很簡單,就是尋找一個字符串中連續的最長包含不同字母的子串。 其實用最樸素的方法,從當前字符開始尋找,找到以當前字符開頭的最長子串。這個方法猛一看是個n方的算法,但是要注意到由於字符數目的限制,其實這是個O(Cn)的算法,最長也不過是C長

原创 在Visual Studio中使用FFTW庫

FFTW不用做過多介紹,一般都是在linux下使用,包括放出windows版的作者也自己聲明:we don't use Windows ourselves  但是由於要和MIC混合編程,想先在本地使用,其中碰到了一些問題,但也明白了不少Vi

原创 String to Integer (atoi) - 複雜的測試

這個題。。是要把字符串轉爲整數。注意是整數,我看到整數的時候鬆了一口氣,沒有小數點的判斷應該更好做。而且基本的轉化函數我想每個程序員都無法忘記: res=res*10+(str[i]-'0'); 其實就是這麼一句話的事情,然而這個題的通