小编Man*_*ete的帖子

将2D阵列复制到已知可变宽度的GPU

我正在研究如何将每行的可变宽度的2D数组复制到GPU中.

int rows = 1000;
int cols;
int** host_matrix = malloc(sizeof(*int)*rows);
int *d_array;
int *length;

...
Run Code Online (Sandbox Code Playgroud)

每个人host_matrix[i]可能都有不同的长度,我知道length[i],问题就出在那里.我想避免复制虚拟数据.有没有更好的方法呢?

根据这个帖子,这不是一个聪明的方法:

cudaMalloc(d_array, rows*sizeof(int*));  
for(int i = 0 ; i < rows ; i++)    {  
    cudaMalloc((void **)&d_array[i], length[i] * sizeof(int)); 
}  
Run Code Online (Sandbox Code Playgroud)

但我想不出任何其他方法.有没有其他更聪明的方法呢?可以使用cudaMallocPitch和cudaMemCpy2D进行改进吗?

cuda gpu gpgpu nvidia

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

Bash缺少$(HOME)变量

我一直在编译应用程序Makefile一段时间没有任何问题.今天,我意识到我Makefile不再工作了.一点调试,我很快发现$(HOME)没有定义

$echo $(HOME)
-bash: HOME: command not found
Run Code Online (Sandbox Code Playgroud)

我始终认为,$HOME$(HOME)可以互换使用.是否有理由可以配置系统以避免使用$(HOME)

bash shell makefile

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

从一个文件的提取内容创建文件

我有一个大文件,其中包含基于所用数量processesbenchmark案例的信息.所有这些信息在同一文件中一个接一个地跟随.

    --
# Benchmarking Allgather
# #processes = 8
# ( 3592 additional processes waiting in MPI_Barrier)
#----------------------------------------------------------------
       #bytes #repetitions  t_min[usec]  t_max[usec]  t_avg[usec]
            0         1000         0.05         0.05         0.05
            1         1000         1.77         2.07         1.97
            2         1000         1.79         2.08         1.97
            4         1000         1.79         2.07         1.98
            8         1000         1.82         2.12         2.01
--
# Benchmarking Allgather
# #processes = 16
# ( 3584 additional processes waiting in MPI_Barrier)
#----------------------------------------------------------------
       #bytes #repetitions  t_min[usec]  t_max[usec]  t_avg[usec]
            0         1000         0.05         0.05         0.05
            1 …
Run Code Online (Sandbox Code Playgroud)

python bash awk matplotlib

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

从/到文件读取和写入双精度

我试图将双数组写入文件并再次读取它们.下面是我的代码,但有些东西我不知道了.这听起来很傻但我无法做对.

#include <stdio.h>
#include <stdlib.h>

int main(){

  int i,j,k;
  int N = 10;

  double* readIn = new double[N];
  double* ref = new double[N];
  FILE* ptr1, *ptr2;

  ptr1 = fopen("output.txt","w");
  //write out
  for (i = 0; i < N;i++){
    ref[i] = (double)i;
    fprintf(ptr1,"%g\n",(double)i);
  }
  fclose(ptr1);
  //read file
  ptr2 = fopen("output.txt","r+");
  //read in
  for(i = 0;i < N;i++)
    fscanf(ptr2, "%g", &readIn[i]); 


  fclose(ptr2);

  for(i = 0;i<N;i++)
    if(ref[i] != readIn[i]){
      printf("Error:  %g   %g\n",ref[i], readIn[i]);
    }

  return 0;

}
Run Code Online (Sandbox Code Playgroud)

c c++

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

正则表达式操作修改字符串

目前我有一个类似于的字符串:

mytime = '143456.45674'
Run Code Online (Sandbox Code Playgroud)

那串充满了时间:

%HH%MM:%SS . something else
Run Code Online (Sandbox Code Playgroud)

我只对HH:MM:SS格式感兴趣,所以我可以这样做:

mynewTime = mytime[0:2]+":"+mytime[2:4]+":"+mytime[4:6]
'14:34:56'
Run Code Online (Sandbox Code Playgroud)

这有点难看,我想知道是否有一种更优雅/更有效的方式.也许是正则表达式?

python regex

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

标签 统计

bash ×2

python ×2

awk ×1

c ×1

c++ ×1

cuda ×1

gpgpu ×1

gpu ×1

makefile ×1

matplotlib ×1

nvidia ×1

regex ×1

shell ×1