浏览代码

Change cudaHostAlloc to malloc

cudaHostAlloc( .... , cudaHostAllocPortable) causes problems and is not
needed since we already do cudaHostRegisterPortable when allocating
memory on GPU.
Dhairya Malhotra 10 年之前
父节点
当前提交
ad671fbcee
共有 3 个文件被更改,包括 15 次插入29 次删除
  1. 0 1
      Makefile.am
  2. 15 8
      include/device_wrapper.txx
  3. 0 20
      src/device_wrapper_gpu.cu

+ 0 - 1
Makefile.am

@@ -114,7 +114,6 @@ lib_libpvfmm_a_SOURCES = \
 
 if NVCC_OK
 lib_libpvfmm_a_SOURCES += \
-													src/device_wrapper_gpu.cu \
 													src/fmm_pts_gpu.cu
 endif
 

+ 15 - 8
include/device_wrapper.txx

@@ -23,14 +23,21 @@ namespace pvfmm{
 namespace DeviceWrapper{
 
   // CUDA functions
-#ifdef __cplusplus
-extern "C" {
-#endif
-  void* host_malloc_cuda(size_t size);
-  void host_free_cuda(void* p);
-#ifdef __cplusplus
-}
-#endif
+  inline void* host_malloc_cuda(size_t size){
+    return malloc(size);
+    //void* p;
+    //cudaError_t error = cudaHostAlloc(&p, size, cudaHostAllocPortable);
+    //if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
+    //assert(error == cudaSuccess);
+    //return p;
+  }
+
+  inline void host_free_cuda(void* p){
+    free(p);
+    //cudaError_t error = cudaFreeHost(p);
+    //if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
+    //assert(error == cudaSuccess);
+  }
 
   inline uintptr_t alloc_device_cuda(char* dev_handle, size_t len) {
     char *dev_ptr=NULL;

+ 0 - 20
src/device_wrapper_gpu.cu

@@ -1,20 +0,0 @@
-#include <stdio.h>
-#include <assert.h>
-
-extern "C" {
-
-void* host_malloc_cuda(size_t size){
-  void* p;
-  cudaError_t error = cudaHostAlloc(&p, size, cudaHostAllocPortable);
-  if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
-  assert(error == cudaSuccess);
-  return p;
-}
-
-void host_free_cuda(void* p){
-  cudaError_t error = cudaFreeHost(p);
-  if (error != cudaSuccess) fprintf(stderr,"CUDA Error: %s \n", cudaGetErrorString(error));
-  assert(error == cudaSuccess);
-}
-
-}