{"id":1603,"date":"2025-08-16T07:52:21","date_gmt":"2025-08-15T22:52:21","guid":{"rendered":"https:\/\/beeknowledge.co.jp\/?p=1603"},"modified":"2025-08-16T09:52:24","modified_gmt":"2025-08-16T00:52:24","slug":"opencv4-12-0%e3%81%8ccuda13%e3%81%a7%e3%83%93%e3%83%ab%e3%83%89%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84%e3%82%92%e8%a7%a3%e6%b1%ba%e3%81%97%e3%81%9f%e3%81%84%e3%80%82%ef%bc%88%e9%80%94%e4%b8%ad%ef%bc%89","status":"publish","type":"post","link":"https:\/\/beeknowledge.co.jp\/?p=1603","title":{"rendered":"OpenCV4.12.0\u304cCUDA13\u3067\u30d3\u30eb\u30c9\u3067\u304d\u306a\u3044\u3092\u89e3\u6c7a\u3057\u305f\u3044\u3002"},"content":{"rendered":"<div class=\"veu_autoEyeCatchBox\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"\" srcset=\"https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn.jpg 1024w, https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn-300x300.jpg 300w, https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn-150x150.jpg 150w, https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn-768x768.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div>\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n<meta charset=\"utf-8\">\n<title>OpenCV cuda_info.cpp \u2014 CUDA 13 \u5bfe\u5fdc\u30d1\u30c3\u30c1\u5dee\u5206\u307e\u3068\u3081<\/title>\n<style>\n  body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,\"Hiragino Kaku Gothic ProN\",\"Hiragino Sans\",\"Noto Sans CJK JP\",\"Yu Gothic UI\",\"YuGothic\",Meiryo,sans-serif; line-height:1.65; margin:40px; color:#111;}\n  code, pre{font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace; font-size: 0.95em;}\n  pre{background:#f6f8fa; padding:12px 16px; border-radius:8px; overflow:auto; border:1px solid #eaecef;}\n  h1,h2,h3{line-height:1.35}\n  table{border-collapse:collapse; margin:16px 0; width:100%}\n  th,td{border:1px solid #ddd; padding:8px; vertical-align:top}\n  th{background:#fafafa; text-align:left}\n  .ok{color:#0a7}\n  .warn{color:#e57}\n  .mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Courier New\", monospace}\n<\/style>\n<\/head>\n<body>\n<h1>OpenCV <code>modules\/core\/src\/cuda_info.cpp<\/code> \u2014 CUDA 13 \u5bfe\u5fdc\u5909\u66f4\u70b9\u307e\u3068\u3081<\/h1>\n\n<p>\u76ee\u7684\uff1a\u65b0\u8abf\u3057\u305fPC\u304c\u65b0\u3057\u3059\u304e\u3066<br>\u3000CUDA 13 \u3067 <code>cudaDeviceProp<\/code> \u306e\u4e00\u90e8\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u5ec3\u6b62\u30fb\u975e\u63a8\u5968\u306b\u306a\u3063\u305f\u305f\u3081\u3001OpenCV 4.12.0 \u306e\n<code>cuda_info.cpp<\/code> \u304c\u30d3\u30eb\u30c9\u30a8\u30e9\u30fc\u306b\u306a\u308b\u554f\u984c\u3092\u89e3\u6d88\u3057\u3001\u5b9f\u884c\u6642\u3082\u5b89\u5b9a\u3055\u305b\u308b\u3002<\/p>\n\n<h2>1. \u8ffd\u52a0\u30fb\u5909\u66f4\u3057\u305f\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3068\u30d8\u30eb\u30d1<\/h2>\n<ul>\n  <li><code>#include &lt;cuda_runtime.h&gt;<\/code> \u3092\u8ffd\u52a0\uff08\u65e2\u5b58\u306e <code>&lt;cuda_runtime_api.h&gt;<\/code> \u306b\u52a0\u3048\u3066\uff09\u3002<\/li>\n  <li>CUDA 13 \u4ee5\u4e0a\u306e\u307f\u3067\u6709\u52b9\u306b\u306a\u308b\u5c5e\u6027\u53d6\u5f97\u30d8\u30eb\u30d1\u3092\u5c0e\u5165\uff08\u30ac\u30fc\u30c9\u4ed8\uff09\uff1a<\/li>\n<\/ul>\n<pre><code>#if defined(HAVE_CUDA) &amp;&amp; defined(CUDART_VERSION) &amp;&amp; (CUDART_VERSION &gt;= 13000)\n#include &lt;cuda_runtime.h&gt;\nstatic inline int cv_cuda_devAttr_int(int dev, cudaDeviceAttr attr) {\n    int v = 0; cudaDeviceGetAttribute(&v, attr, dev); return v;\n}\n#endif\n<\/code><\/pre>\n\n<h2>2. \u5ec3\u6b62\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u7f6e\u63db\uff08\u95a2\u6570\u3054\u3068\uff09<\/h2>\n<table>\n<thead><tr><th>\u5bfe\u8c61\u30e1\u30f3\u30d0\u95a2\u6570<\/th><th>\u65e7\uff08CUDA 12 \u4ee5\u524d\uff09<\/th><th>\u65b0\uff08CUDA 13 \u4ee5\u4e0a\uff09<\/th><\/tr><\/thead>\n<tbody>\n<tr>\n  <td><code>int DeviceInfo::clockRate() const<\/code><\/td>\n  <td><code>deviceProps()-&gt;clockRate<\/code><\/td>\n  <td><code>cv_cuda_devAttr_int(device_id_, cudaDevAttrClockRate)<\/code><\/td>\n<\/tr>\n<tr>\n  <td><code>bool DeviceInfo::kernelExecTimeoutEnabled() const<\/code><\/td>\n  <td><code>deviceProps()-&gt;kernelExecTimeoutEnabled != 0<\/code><\/td>\n  <td><code>(cv_cuda_devAttr_int(device_id_, cudaDevAttrKernelExecTimeout) != 0)<\/code><\/td>\n<\/tr>\n<tr>\n  <td><code>DeviceInfo::ComputeMode DeviceInfo::computeMode() const<\/code><\/td>\n  <td><code>tbl[deviceProps()-&gt;computeMode]<\/code><\/td>\n  <td><code>tbl[ cv_cuda_devAttr_int(device_id_, cudaDevAttrComputeMode) ]<\/code><\/td>\n<\/tr>\n<tr>\n  <td><code>int DeviceInfo::maxTexture1DLinear() const<\/code><\/td>\n  <td><code>deviceProps()-&gt;maxTexture1DLinear<\/code><\/td>\n  <td><code>cv_cuda_devAttr_int(device_id_, <b>cudaDevAttrMaxTexture1DLinearWidth<\/b>)<\/code><\/td>\n<\/tr>\n<tr>\n  <td><code>int DeviceInfo::memoryClockRate() const<\/code><\/td>\n  <td><code>deviceProps()-&gt;memoryClockRate<\/code><\/td>\n  <td><code>cv_cuda_devAttr_int(device_id_, cudaDevAttrMemoryClockRate)<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n<p>\u203b \u3059\u3079\u3066 <code>#if defined(CUDART_VERSION) &amp;&amp; (CUDART_VERSION &gt;= 13000)<\/code> \u3067\u30ac\u30fc\u30c9\u3057\u3001\n\u305d\u308c\u672a\u6e80\u306f\u5f93\u6765\u30b3\u30fc\u30c9\u3092\u305d\u306e\u307e\u307e\u4f7f\u7528\u3059\u308b\u6761\u4ef6\u30b3\u30f3\u30d1\u30a4\u30eb\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n<h2>3. \u60c5\u5831\u8868\u793a\u95a2\u6570\u306e\u4fee\u6b63<\/h2>\n<ul>\n  <li><code>printCudaDeviceInfo(int device)<\/code> \u3068 <code>printShortCudaDeviceInfo(int device)<\/code> \u3092\u3001\n      \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u306e\u6539\u884c\u5d29\u308c\uff08<span class=\"warn\">missing terminating &quot; character<\/span>\uff09\u3092\u76f4\u3057\u3064\u3064\u3001\n      \u5c5e\u6027 API \u306b\u5408\u308f\u305b\u305f\u5b89\u5168\u306a\u6700\u5c0f\u5b9f\u88c5\u3078\u7f6e\u63db\u3002\n  <\/li>\n  <li>\u4ee3\u8868\u5024\u3068\u3057\u3066\u4ee5\u4e0b\u3092\u5370\u5b57\uff1a\u30c7\u30d0\u30a4\u30b9\u540d\/\u30e1\u30e2\u30ea\/SM\u3001GPU\u30af\u30ed\u30c3\u30af\u3001\u30e9\u30f3\u30bf\u30a4\u30e0\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3001Compute Mode\u3002<\/li>\n<\/ul>\n\n<h3>\u4fee\u6b63\u5f8c\u306e\u30a4\u30e1\u30fc\u30b8\uff08\u629c\u7c8b\uff09<\/h3>\n<pre><code>printf(\"*** CUDA Device Query (Runtime API) ***\\n\");\nprintf(\"Device %d: \\\"%s\\\"  %ldMb, sm_%d%d\\n\", device, prop.name,\n       (long)(prop.totalGlobalMem &gt;&gt; 20), prop.major, prop.minor);\nprintf(\"  GPU Clock Speed:                               %.2f GHz\\n\",\n       (cv_cuda_devAttr_int(device, cudaDevAttrClockRate) * 1e-6f));\nprintf(\"  Run time limit on kernels:                     %s\\n\",\n       (cv_cuda_devAttr_int(device, cudaDevAttrKernelExecTimeout) ? \"Yes\" : \"No\"));\nprintf(\"  Compute Mode:                                  %d\\n\",\n       cv_cuda_devAttr_int(device, cudaDevAttrComputeMode));\n<\/code><\/pre>\n\n<h2>4. \u6587\u5b57\u5217\u30ea\u30c6\u30e9\u30eb\u5d29\u308c\u306e\u4fee\u5fa9<\/h2>\n<p>\u5143\u30d5\u30a1\u30a4\u30eb\u306b\u6df7\u5165\u3057\u3066\u3044\u305f <code>printf<\/code> \u306e\u6539\u884c\u30fb\u5f15\u7528\u7b26\u5d29\u308c\u3092\u5168\u9762\u4fee\u6b63\u3002\u3059\u3079\u3066\n<code>\"...\\n\"<\/code> \u306e\u5f62\u5f0f\u306b\u7d71\u4e00\u3057\u3001\u30a8\u30b9\u30b1\u30fc\u30d7\u306e\u629c\u3051\u3067\u30d3\u30eb\u30c9\u304c\u6b62\u307e\u3089\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n<h2>5. \u8ffd\u52a0\u30fb\u5909\u66f4\u306e\u72d9\u3044\uff08\u7406\u7531\uff09<\/h2>\n<ul>\n  <li>CUDA 13 \u3067 <code>cudaDeviceProp<\/code> \u306e\u4e00\u90e8\u30d5\u30a3\u30fc\u30eb\u30c9\uff08\u4f8b\uff1a<code>clockRate<\/code>,\n      <code>kernelExecTimeoutEnabled<\/code>, <code>computeMode<\/code>, <code>maxTexture1DLinear<\/code>,\n      <code>memoryClockRate<\/code> \u306a\u3069\uff09\u304c\u76f4\u63a5\u53c2\u7167\u3067\u304d\u306a\u304f\u306a\u3063\u305f\u305f\u3081\u3002<\/li>\n  <li>\u516c\u5f0f\u304c\u63a8\u5968\u3059\u308b <b>\u5c5e\u6027 API<\/b>\uff08<code>cudaDeviceGetAttribute<\/code>\uff09\u306b\u7f6e\u63db\u3059\u308b\u306e\u304c\u4e92\u63db\u6027\u306e\u3042\u308b\u6b63\u653b\u6cd5\u3002<\/li>\n<\/ul>\n\n<h2>6. \u5f71\u97ff\u7bc4\u56f2<\/h2>\n<ul>\n  <li>\u5bfe\u8c61\u30d5\u30a1\u30a4\u30eb\uff1a<code>modules\/core\/src\/cuda_info.cpp<\/code> \u306e\u307f\u3002<\/li>\n  <li>CUDA 13 \u672a\u6e80\u3067\u306f\u5f93\u6765\u30b3\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u3001\u4e0b\u4f4d\u4e92\u63db\u6027\u3092\u7dad\u6301\u3002<\/li>\n<\/ul>\n\n<h2>7. \u30d3\u30eb\u30c9\u30fb\u52d5\u4f5c\u78ba\u8a8d\u306e\u8981\u70b9<\/h2>\n<ol>\n  <li>CUDA 13.x\uff08\u30c4\u30fc\u30eb\u30ad\u30c3\u30c8\uff09\u3068\u5bfe\u5fdc cuDNN \u3092\u5c0e\u5165\u6e08\u307f\u3067\u3042\u308b\u3053\u3068\u3002<\/li>\n  <li><code>LD_LIBRARY_PATH=\/usr\/local\/cuda-13.0\/lib64<\/code> \u3092\u660e\u793a\u3059\u308b\uff08\u30b5\u30fc\u30d3\u30b9\/IDE \u5b9f\u884c\u6642\u3082\uff09\u3002<\/li>\n  <li>OpenCV \u3092\u518d\u30d3\u30eb\u30c9\u3057\u3001<code>cv2.getBuildInformation()<\/code> \u3067 CUDA \u304c\u6709\u52b9\u304b\u78ba\u8a8d\u3002<\/li>\n  <li>DNN(CUDA) \u306e\u6700\u5c0f\u5b9f\u884c\uff08\u30e9\u30f3\u30c0\u30e0\u5165\u529b\u3067 <code>net.forward()<\/code>\uff09\u304c\u901a\u308b\u304b\u3092\u78ba\u8a8d\u3002<\/li>\n<\/ol>\n\n<hr>\n\n\n<p class=\"ok\">\u4ee5\u4e0a\u3002\u307e\u3060\u30d3\u30eb\u30c9\u9014\u4e2d\u306a\u306e\u3067\u3001\u8ffd\u8a18\u3059\u308b\u304b\u3082\u3002<br>\u8ffd\u8a18\uff1aVideoStab\u306fOFF\u306b\u3000\u305d\u308c\u3067\u30d3\u30eb\u30c9\u3000\u6b63\u5e38\u52d5\u4f5c\u3092\u78ba\u8a8d\uff01<br>\u3000\u00a9\u682a\u5f0f\u4f1a\u793e\u30d3\u30fc\u30fb\u30ca\u30ec\u30c3\u30b8\u30fb\u30c7\u30b6\u30a4\u30f3<\/p>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>OpenCV cuda_info.cpp \u2014 CUDA 13 \u5bfe\u5fdc\u30d1\u30c3\u30c1\u5dee\u5206\u307e\u3068\u3081 OpenCV modules\/core\/src\/cuda_info.cpp \u2014 CUDA 13 \u5bfe\u5fdc\u5909\u66f4\u70b9\u307e\u3068\u3081 \u76ee\u7684\uff1a\u65b0\u8abf\u3057\u305fPC\u304c\u65b0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1611,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"saved_in_kubio":false,"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"vkexunit_cta_each_option":"","footnotes":""},"categories":[6],"tags":[51,36],"class_list":["post-1603","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programing","tag-51","tag-36"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/beeknowledge.co.jp\/wp-content\/uploads\/2025\/08\/a2ssn.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/1603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1603"}],"version-history":[{"count":5,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/1603\/revisions"}],"predecessor-version":[{"id":1610,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/1603\/revisions\/1610"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=\/wp\/v2\/media\/1611"}],"wp:attachment":[{"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beeknowledge.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}