小编use*_*276的帖子

Eudyptula挑战和内核路径

我决定参加Eudyptula挑战赛.在我提交了第一个任务之后,就是构建一个简单的"Hello World!" 模块,我收到了以下答案.

请阅读Makefile的要求,并允许根据文件系统上的任何内核源代码树构建模块,而不仅仅是那些/lib/在某个时间点安装的内核.

要求是:

Makefile应该能够针对当前运行的内核的源构建内核模块,并且能够从环境变量接受任意内核源目录.

我正在做的是检查是否KERNELRELEASE设置了环境变量.如果是我构建模块

$(KERNELRELEASE)/build  
Run Code Online (Sandbox Code Playgroud)

如果它不反对

/lib/modules/$(shell uname -r)/build
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么这不能满足这项任务的要求.

makefile linux-kernel eudyptula-challenge

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

Docker 中的初始化层

为什么在Docker中从镜像创建容器时会创建containerID-init层?新容器不能将图像作为父容器吗?

storage docker

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

SO_ATTACH_REUSEPORT_CBPF套接字选项意外行为

我正在尝试使用来自两个应用程序的端口,并让每个应用程序从一组不同的IP地址接收数据包.为了实现这一点,我使用了SO_REUSEPORT和SO_ATTACH_REUSEPORT_CBPF套接字选项.我的代码如下:

parentfd = socket(AF_INET, SOCK_STREAM, 0);
if (parentfd < 0)
  error( "ERROR opening socket");

struct sock_filter code[]={
  { 0x28, 0, 0, 0x0000000c },
  { 0x15, 0, 3, 0x00000800 },
  { 0x20, 0, 0, 0x0000001a },
  { 0x15, 2, 0, 0xc0a8ff01 },
  { 0x6, 0, 0, 0x00000000 },
  { 0x6, 0, 0, 0x00040000 },
  { 0x6, 0, 0, 0x00000001 },
};

struct sock_fprog bpf = {
  .len = ARRAY_SIZE(code),
  .filter = code,
};

if (setsockopt(parentfd, SOL_SOCKET, SO_REUSEPORT, (const void *)&optval,sizeof(optval)))
  error("ERROR …
Run Code Online (Sandbox Code Playgroud)

sockets linux packet-capture

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

Cuda Toolkit 6.0 不支持编译器 Ubuntu 14.04

我正在尝试在我的 Ubuntu 14.04 笔记本电脑中安装 Cuda 6.0,但它不断抛出以下错误:

Error: unsupported compiler: 4.8.2. Use --override to override this check.
Run Code Online (Sandbox Code Playgroud)

我应该为此使用哪个 gcc 版本?

installation cuda

4
推荐指数
2
解决办法
9891
查看次数

cgo中的垃圾收集

我在使用 cgo 的 Go 中有以下代码:

  func foo() {
       bar := new(C.struct_bar)
       ...
  }
Run Code Online (Sandbox Code Playgroud)

函数完成执行后 bar 会被垃圾回收还是我需要显式调用 free?

memory-management go cgo

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

Haskell中的Primality测试

我在Haskell中有以下代码.我想重复30次Fermat素性测试给定的数字n,但问题是它总是返回False ...我试图修复问题但我总是得到错误的答案.任何想法?

import System.Random
import System.IO.Unsafe

takeARandomNum n=unsafePerformIO (getStdRandom (randomR (2,n)))

fermatTestA :: (Int, Int) -> Bool
fermatTestA (n, a) =((a^(n-1) `mod` n)==1)

solve :: (Int, Int) -> Bool
solve (n, 1) = fermatTestA (n, takeARandomNum (n-2))
solve (n, maxTest)
    | fermatTestA (n, takeARandomNum (n-2)) = (solve (n, (maxTest-1)))
    | otherwise = False

fermatTest :: Int ->Bool
fermatTest n = solve (n, 30)
Run Code Online (Sandbox Code Playgroud)

haskell

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

发现GPU中的最小值比CPU慢

我已经实现了这个代码:http://www.cuvilib.com/Reduction.pdf,以便计算矩阵元素的总和.

但是在GPU中运行速度比在CPU中慢得多.

我有i7处理器和NVIDIA GT 540M显卡.

是应该是这样还是其他什么?

编辑:我在Ubuntu 13.04中使用上面代码的第3版,我使用Eclipse Nsight编译它.矩阵的大小为2097152个元素.它在3.6毫秒内执行,而CPU版本在1.0毫秒左右.以下是整个代码:

#include <stdio.h>
#include <stdlib.h>
#include <thrust/sort.h>
#include <sys/time.h>
#include <omp.h>
#include <iostream>
#include <algorithm>

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



static const int WORK_SIZE = 2097152;



int find_min(int *a,int length){
  int min = a[0];
  for (int i=1;i<length;i++)
            if (a[i]<min)
        min=a[i];
  return min;
}


__global__ static void red_min(int *g_idata,int *g_odata) {
    extern __shared__ int sdata[];
    unsigned int tid = threadIdx.x;
    unsigned int i = blockIdx.x * blockDim.x + threadIdx.x;
    sdata[tid]= g_idata[i]; …
Run Code Online (Sandbox Code Playgroud)

cuda gpu min

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

减少Cuda中任意数量的元素

我如何实现以下链接中给出的代码的第7版:http : //www.cuvilib.com/Reduction.pdf
,其输入数组的大小为任意数,换句话说,不是2的幂。

reduce cuda gpu

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