小编use*_*108的帖子

在 fork() 中,哪个将首先运行,父级还是子级?

当以下代码运行时,我知道在调用 fork() 后,父级和子级都会立即并行运行。

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
    int pfds[2];
    char buf[30];

    pipe(pfds);

    if (!fork()) {
        printf(" CHILD: writing to the pipe\n");
        write(pfds[1], "test", 5);
        printf(" CHILD: exiting\n");
        exit(0);
    } else {
        printf("PARENT: reading from pipe\n");
        read(pfds[0], buf, 5);
        printf("PARENT: read \"%s\"\n", buf);
        wait(NULL);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这意味着 child 将执行:

printf(" CHILD: writing to the pipe\n"); 
Run Code Online (Sandbox Code Playgroud)

并且父级将执行

printf("PARENT: reading from pipe\n");
Run Code Online (Sandbox Code Playgroud)

在平行下。

对于那些不熟悉的人C,在sh

$ sh …
Run Code Online (Sandbox Code Playgroud)

fork

5
推荐指数
2
解决办法
3553
查看次数

OpenGL:为什么选择三角形作为基本构建块?

我正在启动openGL.无法理解图形中的所有内容都是从三角形开始的.我读过的每篇文章都说整个图形都依赖于三角形.

选择这种形状作为基本构件的原因是什么?我虽然方形或圆形会更好,并且因为对称属性而合乎逻辑.

opengl graphics

4
推荐指数
1
解决办法
795
查看次数

有关CUDA中统一虚拟寻址(UVA)的信息/示例

我试图理解CUDA中统一虚拟寻址(UVA)的概念.我有两个问题:

  1. 是否有可用于演示此概念的示例(psudo)代码?

  2. 我在CUDA C编程指南中读到,UVA只能用于64位操作系统.为什么会这样?

cuda gpu nvidia

2
推荐指数
1
解决办法
1698
查看次数

为什么我们两次构建opencl程序?

我在amd平台的opencl程序中观察到我们需要两次构建程序.一旦使用clBuildProgram ...(); 当我们构建整个代码时.为什么我们这样做两次?

gpu opencl

1
推荐指数
1
解决办法
1000
查看次数

了解#define用法中的副作用

我指的是这个问题

#define max(a,b) ((a<b)?b:a)

这会产生一些副作用,如答案所述;

如果您使用max(a ++,b ++)作为示例(a或b将增加两次),则会出现副作用

我无法理解这种副作用; 当我们使用max(a ++,b ++)时,为什么a或b会递增两次?

c

1
推荐指数
1
解决办法
76
查看次数

gpgpu:为什么我们不需要在细粒度多线程中进行分支预测?

当波前执行时,它提供细粒度多线程.其中一个后果是没有分支预测要求,如下面的幻灯片所示:

在此输入图像描述

但我无法理解这一点.有人可以用一种简单的方式解释这个吗?

cuda gpgpu opencl branch-prediction

1
推荐指数
1
解决办法
617
查看次数

OpenCL:首选矢量宽度与原始矢量宽度

在我的电脑上使用intel N2820 cpu(具有Intel HD Ghaphics)的简单设备查询opencl程序,给出了以下几行:

CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 1
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE:
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: 1
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: 0
Run Code Online (Sandbox Code Playgroud)

有人可以解释不同数据类型的提供和本机矢量宽度的含义吗?

opencl

0
推荐指数
1
解决办法
1003
查看次数

标签 统计

opencl ×3

cuda ×2

gpu ×2

branch-prediction ×1

c ×1

fork ×1

gpgpu ×1

graphics ×1

nvidia ×1

opengl ×1