Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 在对象文件中忽略OMP parrallel_Gcc_Linker_Openmp_Object Files - Fatal编程技术网

Gcc 在对象文件中忽略OMP parrallel

Gcc 在对象文件中忽略OMP parrallel,gcc,linker,openmp,object-files,Gcc,Linker,Openmp,Object Files,注意:我不太了解对象文件、链接或制作文件。我只懂运行一个程序 我正在做一个GPU加速版本的我以前的项目,工作没有问题。我目前正在测试一个用于其他CUDA程序的make文件的修改版本 文件: exe: main.o b.o gcc -fopenmp -L /usr/local/cuda/lib64 -o exe main.o b.o -lcudart -lglfw -lGL main: gcc -fopenmp -o main.o main.c -Ofast -march=

注意:我不太了解对象文件、链接或制作文件。我只懂运行一个程序

我正在做一个GPU加速版本的我以前的项目,工作没有问题。我目前正在测试一个用于其他CUDA程序的make文件的修改版本

文件:

exe: main.o b.o

    gcc -fopenmp -L /usr/local/cuda/lib64 -o exe main.o b.o -lcudart -lglfw -lGL

main: 

    gcc -fopenmp -o main.o main.c -Ofast -march=native -mtune=native -lglfw -lGL -I /usr/local/cuda/include

b.o: b.cu b.h

    nvcc -Xcompiler -fPIC -ccbin clang-3.8 -c -o b.o b.cu
b、 cu是包含一些测试函数的CUDA文件;它还没有产生任何效果

当我运行编译后的程序时,它只使用一个内核,并且以1/4的帧速率运行(这是在4核cpu上所期望的)

我在谷歌上搜索了尽可能多的问题,但我没有找到任何适合我的结果

系统信息:

操作系统:Ubuntu 18.04仿生

CPU:AMD A8-3850

GPU:GeForce GTX 1060 6GB

内存:7974MiB


GCC:7.3.0

请编辑您的问题,以使makefile的内容更加清晰。很重要的一点是,你必须弄清楚在哪里有空格(“”)、制表符(“\t”)和换行符(\n”)。StackOverflow编辑器使这一点变得非常困难,因为它对空白的处理有些令人惊讶,但您必须以某种方式避免对何处存在任何疑问。其他人,具有在此处引用make文件的最佳实践经验,请提出如何在此处有意义地、有帮助地显示make文件。我(希望)问一个多余的问题,但实际上您在非CUDA代码中使用了
OpenMP pragma
指令,对吗?不仅仅是因为你使用了
OpenMP
compile flag,就希望你的代码能够在四个内核上完全并行运行?@Christian W是的,我使用了#pragma parralel、simd等。我有另一个版本可以在所有内核上运行,但是当我链接CUDA文件时,它就停止工作了。@Yunnosch我会尝试使这些eddits运行