最近发现 git 有个比较便捷的用法,就是用 diff 的数据信息,写成文本,然后根据文本代码和 git 中 patch 指令,实现文件的更替。这种方法,可以不传输文件,仅用文本的方式,实现文件的修改。
例:(最近重编译 CUDA10.0 + Torch7 涉及)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
diff --git a/lib/THC/THCAtomics.cuh b/lib/THC/THCAtomics.cuh index 400875c..ccb7a1c 100644 --- a/lib/THC/THCAtomics.cuh +++ b/lib/THC/THCAtomics.cuh @@ -94,6 +94,7 @@ static inline __device__ void atomicAdd(long *address, long val) { } #ifdef CUDA_HALF_TENSOR +#if !(__CUDA_ARCH__ >= 700 || !defined(__CUDA_ARCH__) ) static inline __device__ void atomicAdd(half *address, half val) { unsigned int * address_as_ui = (unsigned int *) ((char *)address - ((size_t)address & 2)); @@ -117,6 +118,7 @@ static inline __device__ void atomicAdd(half *address, half val) { } while (assumed != old); } #endif +#endif $ cd extra/cutorch $ cat > atomic.patch <copy and paste the patch> $ patch -p1 < atomic.patch |
在 <copy and paste the patch> 上粘贴上面填写的差别信息。