{"blog_url":"https://hanecci.hatenadiary.org/","version":"1.0","image_url":null,"author_url":"https://blog.hatena.ne.jp/hanecci/","provider_url":"https://hatena.blog","author_name":"hanecci","height":"190","description":"CUDA \u306b\u5bfe\u5fdc\u3057\u305f GPU \u304b\u3089\u4f7f\u3048\u308b Mutex \u3084 Stack \u306e\u5b9f\u88c5\u306e\u30b3\u30fc\u30c9\u304c\u9762\u767d\u304b\u3063\u305f\u306e\u3067, \u30b3\u30fc\u30c9\u3092\u4ee5\u4e0b\u306b\u8f09\u305b\u307e\u3059. \u4ee5\u4e0b\u306e Mutex \u306e\u30b3\u30fc\u30c9\u306f CUDA \u306e Compute capability 1.2 \u306e GPU \u3067\u52d5\u4f5c\u3057\u307e\u3059. struct Mutex { int* value; void InitializeFromHost( void ) { int state = 0; HANDLE_ERROR( cudaMalloc( (void**)& value, sizeof( int ) ) ); HANDLE_ERROR( cudaMemcpy( value, &sta\u2026","type":"rich","width":"100%","title":"GPGPU : CUDA C \u7528\u306e Mutex, Stack \u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066","url":"https://hanecci.hatenadiary.org/entry/20110109/1294581354","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhanecci.hatenadiary.org%2Fentry%2F20110109%2F1294581354\" title=\"GPGPU : CUDA C \u7528\u306e Mutex, Stack \u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066 - OLD hanecci\u2019s blog : \u65e7 \u306f\u306d\u3063\u3061\u30d6\u30ed\u30b0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"OLD hanecci\u2019s blog : \u65e7 \u306f\u306d\u3063\u3061\u30d6\u30ed\u30b0","provider_name":"Hatena Blog","published":"2011-01-09 22:55:54","categories":[]}