cost 237 ms
使用嵌套 OpenACC 例程傳遞參考參數

[英]Reference Argument Passing with Nested OpenACC Routines

我正在嘗試使用 OpenACC 並行化一些 Fortran 90 代碼,其中並行化循環調用順序例程。 當我嘗試使用 PGI Fortran 編譯器 (2020.4) 運行代碼時,我收到一條錯誤消息,指出傳遞引用參數會阻止並行化。 我的理解是,這可能是因為一個例程存在於主機上,而另一個例程存在於設備 ...

OpenACC Fortran 循環中的順序點積

[英]Sequential dot_product in OpenACC Fortran loop

在 Fortran 程序中,我有一個大循環,在循環內生成的小向量上有幾個dot_product調用: 當使用 PGI 編譯器編譯時,似乎dot_product的加速實現使用了加速循環,因此可以更好地防止主循環加速(在 gang 和 vector 上): 從日志中可以看出,它對循環私有向量使用隱式縮減 ...

OpenACC Fortran 循環中的 Matmul

[英]Matmul in OpenACC Fortran loop

使用 PGI 編譯器通過 OpenACC 加速 Fortran 代碼,我在加速循環中遇到了matmul調用問題。 在簡化示例中,我將單位矩陣應用於兩個向量,因此輸入和 output 值應該相同: 使用 PGI 編譯器 20.9 版進行編譯時,我得到了以下信息: 運行代碼會給出以下值: 第二行應該和 ...

獲取 OpenACC 免費(或全部)設備 memory

[英]Obtain OpenACC free (or total) device memory

我有一個 GPU 代碼,在每次迭代時,它決定是否可以將迭代卸載到加速器。 OpenACC 成為最好的工具:void module(struct my_aos *aos, int n_aos){ int criteria = /* check either that n_aos is l ...

帶有意圖輸出參數的 OpenACC 例程向量

[英]OpenACC routine vector with intent out argument

我目前正在加速 Fortran 代碼,其中我在子程序sub中有一個主加速循環。 在循環中,我想用acc routine調用設備上的子程序subsub 。 子例程有一個intent(out)參數val ,它在循環中是私有的。 由於subsub本身有一個循環,我想使用vector子句:module ca ...

PGI 編譯器的未知庫

[英]Unknown libraries for PGI compiler

我已經為加速器 (20.9) 安裝了 PGI 編譯器,但是一個應用程序的編譯找不到 3 個庫nvhpcatm.so 、 nvcpumath.so和nvc.so 。 我想知道是否有人熟悉這些庫中的任何一個或它們應該如何構建。 謝謝。 ...

OpenACC 第一個私有變量

[英]OpenACC firstprivate variables

我在 OpenACC 內核中遇到數組問題。 這是演示代碼: 當我用nvfortran -acc -Minfo=accel test.f90編譯它並運行時,它顯示在設備上數組中的值為 0.0,而不是我在主機端設置的正確值 1.0。 這僅發生在數組中:標量,如示例中所示,具有正確的值。 我想知道這 ...

acc 並行區域內的例程

[英]Routines inside acc parallel region

在閱讀了這個how-can-a-fortran-openacc-routine-call-another-fortran-openacc-routine 之后,我仍然對這個 OpenACC 函數調用限制感到困惑。 以下是來自上述鏈接帖子的修改后的廢話代碼: 當我用nvfortran 20.7 ...

從 Rust 調用 OpenACC 代碼不在 GPU 上運行

[英]Calling OpenACC code from Rust does not run on GPU

更新 09/07/2020 我在https://gitlab.com/lisanhu2016/rust-openacc-example.git添加了一個小例子 這是一個帶有 README 的公共存儲庫,您應該可以在那里嘗試示例。 我一直鏈接到的庫是:nvc、achost、pgm,你可以在buil ...

如何直接(不使用指針作為函數參數)訪問 OpenAcc 計算區域中 GPU 上的數組?

[英]How to directly (not using a pointer as a function parameter) access arrays on GPU in OpenAcc compute regions?

我有以下簡單的代碼,由 4 個文件組成: 它在帶有 PGI 19.4 編譯器的 CPU 上正常工作。 但我的任務是在 GPU 上啟動代碼。 我使用 PGI 19.4 + OpenAcc。 使用一個簡單的CMakeLists.txt文件和編譯行(GPU Nvidia GeForce 650 Ti, ...

OpenACC-pgcc編譯器中的-ta是什么意思?

[英]OpenACC - What does -ta in pgcc compiler mean?

尊敬的StackOverflow社區, 為了使用OpenACC使用GPU加速,我在pgi編譯器中遇到“ -ta”標志。 我沒有找到任何全面的答案。 是的,我知道使用有關硬件的信息來增強它稱為目標加速器。 因此,如果我的GPU硬件為:-ta,我應該設置什么? 用於pgi編譯器( ...

帶有指針的嵌套類值得openACC

[英]nested classes with pointers woth openACC

我在C ++中有一個相當大的代碼,我必須將一些新類集成到基類中,如下所示。 我認為我正在遇到深度復制問題,因為類B的指針無效,因此未定義GPU上代碼的行為。 對於在不涉及深層復制問題的情況下如何將類包含在另一個類中的反饋,我將不勝感激。 我懷疑更新設備(此)是由某種原因引起的。 ...

PGI 18.1和PGI 18.4

[英]PGI 18.1 vs PGI 18.4

關於#pragma例程seq,從PGi版本18.1到18.4有什么變化,我使用的代碼在版本18.1上工作正常,但在使用較新版本時卻出錯。 我使用數學庫生成內核。 使用名稱空間std; #pragma acc例程double myfunc(double x){return(fabs(x) ...

OpenACC:每個GPU線程都有一個專用數組

[英]OpenACC: having a private array for every GPU thread

我正在將代碼帶入GPU。 此代碼具有使用私有數組的內核。 這意味着該數組在內核循環內聲明。 當我將代碼移植到OpenACC時,會得到錯誤的結果。 對我來說,該數組似乎在GPU向量線程之間共享,這會導致一些競爭情況。 我用外部調用來組織下面的示例,因為這就是我的原始代碼的樣子。 ...

什么是“ PGC-I-0222-符號的冗余定義”

[英]what is “PGC-I-0222-Redundant definition for symbol”

如何解決pgcc&openacc鏈接器錯誤“ __pgi_uacc_multicorestart”,“ __ pgi_uacc_multicoreend” 這是上述問題之后的后續問題。 在“將lbe.c編譯為lbe.o消息:”中,我總是看到“ PGC-I-0222-冗余定義”消息。 ...

如何解決pgcc&openacc鏈接器錯誤“ __pgi_uacc_multicorestart”,“ __ pgi_uacc_multicoreend”

[英]how to solve pgcc&openacc linker error “__pgi_uacc_multicorestart”, “__pgi_uacc_multicoreend”

我正在嘗試在Ubuntu 16.04 LTS上使用OpenACC 2.5將C中的程序並行化。 經過簡單的修改(僅添加一行),我可以將所有.c文件編譯為.o文件。 在鏈接步驟中,pgcc編譯器顯示 未定義對__pgi_uacc_multicorestart的引用 和 ...

如何使用C / OpenACC和PGI編譯器聲明全局動態數組

[英]How to declare a global dynamic array with C/OpenACC with PGI compiler

我正在嘗試運行一個簡單的測試用例,其中動態分配的數組A被外部定義,並使用OpenACC上傳到GPU。 全部帶有PGI編譯器。 我的header.h文件: 然后,我的header.c實現: 然后,在main.c我有 我使用以下命令編譯代碼: 我的PGI編譯器 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM