我正在尝试追踪内存损坏错误,我设法在那里获得了大部分内容。事实证明,ManagedCuda的from django.conf.urls import url
from django.conf.urls import include
from django.contrib import admin
urlpatterns = [
url(r'^'moraimono/$', include('moraimono.urls')),
url(r'^'admin/$', admin.site.urls),
]
类为每个CudaDeviceVariable
元素分配4个字节,而我强烈怀疑F#的本机数组每个bool
元素仅占用1个字节。 bool
函数假定源和目标的大小相同,导致它写入数组的末尾。
我希望编译器告诉我F#的CopyToHost
实际上是每个元素1个字节,所以我有最终的证明并使用它来替换错误的bool []
库计算尺寸的功能。
怎么可能这样做?
答案 0 :(得分:5)
您可以通过在运行时比较相邻数组元素的实际地址来获得git stash apply
数组元素分配大小的防弹指示:
bool
在fsi中评估
open System.Runtime.InteropServices let boolarray = Array.zeroCreate<bool> 2 let elemSize = Marshal.UnsafeAddrOfPinnedArrayElement(boolarray,1) - Marshal.UnsafeAddrOfPinnedArrayElement(boolarray,0)
有效地表示在我的系统上没有填充的情况下每个元素分配1个字节。
答案 1 :(得分:1)
您可以使用sizeof<bool>
获取1