跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

抡锤者

  1. 主页
  2. AI硬件
  3. 关于INTEL 的B70 PRO。

关于INTEL 的B70 PRO。

已定时 已固定 已锁定 已移动 AI硬件
57 帖子 15 发布者 625 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • sirwangS sirwang

    @kaifan 请问这是啥卡的数据?!

    K 离线
    K 离线
    kaifan
    编写于 最后由 编辑
    #48

    @sirwang arc pro b70

    1 条回复 最后回复
    0
    • sirwangS 离线
      sirwangS 离线
      sirwang
      编写于 最后由 编辑
      #49

      他们升级了vllm 的底包。可以问他们要了。

      K 1 条回复 最后回复
      0
      • sirwangS sirwang

        他们升级了vllm 的底包。可以问他们要了。

        K 离线
        K 离线
        kaifan
        编写于 最后由 编辑
        #50

        @sirwang 哦?是这周的事情吗 周末去试试看 谢谢告知

        1 条回复 最后回复
        0
        • sirwangS sirwang

          还在测啥? 以后就是comfyui 吧,我得换版块发帖了吧

          terryT 离线
          terryT 离线
          terry
          编写于 最后由 编辑
          #51

          @sirwang 就等你LTX2.3的帖子,慢了啊,把这个跑起来,英特尔就站起来了,弄详细点,我给单独做个视频。

          油管:https://www.youtube.com/@抡锤者

          sirwangS 1 条回复 最后回复
          0
          • sirwangS sirwang

            @李明 4080S的CUDA强,目前看来。如果不介意钱,就买4080S。

            V 离线
            V 离线
            vosrock
            编写于 最后由 编辑
            #52

            @sirwang 4080 32G是我的梦中情卡,性价比爆炸,当然3080 20G也是

            1 条回复 最后回复
            0
            • terryT terry

              @sirwang 就等你LTX2.3的帖子,慢了啊,把这个跑起来,英特尔就站起来了,弄详细点,我给单独做个视频。

              sirwangS 离线
              sirwangS 离线
              sirwang
              编写于 最后由 编辑
              #53

              @terry 等他们的人调试中,我的docker参数可能有问题。

              1 条回复 最后回复
              0
              • sirwangS 离线
                sirwangS 离线
                sirwang
                编写于 最后由 编辑
                #54

                想了想还是别另开贴了,搞的好像刷帖一样。

                事情是这样的:我想深度的测一下这卡的稳定性。 如果长期去用,去批量跑任务,稳定性就很胆小。 于是就有了这个操作: 朋友让我帮忙处理一批图片,将图片 OCR 出来。 图片都是2K+分辨率的。 图片是一张大概有400-500行/10来列的表格。 用QWEN3.6-27B去反推直接给OCR到excel表格里,我也想看看这卡的能耐咋样,之前有飞浆这些要钱的。也有github上开源的那些,但批量处理这么大的,我没用过。 于是就写了代码,然后试了试这卡的能耐。只用了一张卡,从前天上午不到10点。到刚才。我截图也就是10分钟之前告诉我OK了。 代码如下:

                import base64
                import os
                import glob
                import asyncio
                import aiohttp
                from io import BytesIO
                from PIL import Image
                
                
                API_URL = "http://localhost:8091/v1/chat/completions"
                
                IMAGE_DIR = "./cb*.png"  
                OUTPUT_CSV = "./cb_data_full_fixed.csv"
                
                # B70 32G 显存并发数
                CONCURRENCY = 6  
                
                def encode_image_from_bytes(image_bytes):
                    return base64.b64encode(image_bytes).decode('utf-8')
                
                def slice_long_image(image_path, slice_height=1500):
                    """
                    核心修改:将超长图切片。
                    slice_height=1500 像素大约包含 30-50 行数据。
                    """
                    img = Image.open(image_path)
                    width, height = img.size
                    slices = []
                    
                    for i in range(0, height, slice_height):
                        # 截取切片区域 (left, upper, right, lower)
                        box = (0, i, width, min(i + slice_height, height))
                        slice_img = img.crop(box)
                        
                        # 将切片保存在内存中转为 base64
                        buffered = BytesIO()
                        slice_img.save(buffered, format="PNG") 
                        slices.append(buffered.getvalue())
                        
                    return slices
                
                async def fetch_and_process_slice(session, date_str, slice_base64, slice_index, file_lock):
                    payload = {
                        "model": "/model", 
                        "messages": [
                            {
                                "role": "system",
                                "content": "你是一个无情的数据提取机器。直接输出CSV,不要任何多余文字。"
                            },
                            {
                                "role": "user",
                                "content": [
                                    {
                                        "type": "text",
                                        "text": "提取图片表格中所有可转债数据。请直接输出CSV格式。每行字段为:转债代码,转债名称,价格,涨幅,正股,正股价,溢价率。注意:不要包含表头,不要使用Markdown代码块(如 ```csv)。如果图片中没有完整数据行,请不要编造。"
                                    },
                                    {
                                        "type": "image_url",
                                        "image_url": {
                                            "url": f"data:image/png;base64,{slice_base64}"
                                        }
                                    }
                                ]
                            }
                        ],
                        "max_tokens": 4096,  
                        "temperature": 0.0   
                    }
                
                    try:
                        async with session.post(API_URL, json=payload) as response:
                            if response.status != 200:
                                print(f"⚠️ {date_str} (切片 {slice_index}) 请求失败")
                                return
                
                            res_json = await response.json()
                            result = res_json['choices'][0]['message']['content'].strip()
                            
                            async with file_lock:
                                with open(OUTPUT_CSV, "a", encoding="utf-8-sig") as f:
                                    for line in result.split('\n'):
                                        # 过滤掉可能的空行和重复生成的表头
                                        if line.strip() and "," in line and "代码" not in line: 
                                            f.write(f"{date_str},{line.strip()}\n")
                            
                    except Exception as e:
                        print(f"❌ 处理 {date_str} (切片 {slice_index}) 发生异常: {e}")
                
                async def main():
                    image_list = sorted(glob.glob(IMAGE_DIR))
                    if not image_list:
                        print(f"❌ 错误:没有找到符合 {IMAGE_DIR} 的图片!")
                        return
                
                    print(f"🔥 找到 {len(image_list)} 张超长图,准备进行切片并高并发推断...")
                
                    if not os.path.exists(OUTPUT_CSV):
                        with open(OUTPUT_CSV, "w", encoding="utf-8-sig") as f:
                            f.write("日期,转债代码,转债名称,价格,涨幅,正股,正股价,溢价率\n")
                
                    semaphore = asyncio.Semaphore(CONCURRENCY)
                    file_lock = asyncio.Lock()
                
                    async def sem_task(session, date_str, slice_bytes, index):
                        async with semaphore:
                            slice_b64 = encode_image_from_bytes(slice_bytes)
                            await fetch_and_process_slice(session, date_str, slice_b64, index, file_lock)
                
                    timeout = aiohttp.ClientTimeout(total=None)
                    async with aiohttp.ClientSession(timeout=timeout) as session:
                        tasks = []
                        for img_path in image_list:
                            date_str = os.path.basename(img_path).replace("cb", "").replace(".jpg", "").replace(".png", "")
                            
                            # 对超长图进行切片
                            slices_bytes = slice_long_image(img_path)
                            print(f"✂️ {date_str} 被切分为 {len(slices_bytes)} 块,加入队列...")
                            
                            for index, slice_bytes in enumerate(slices_bytes):
                                tasks.append(sem_task(session, date_str, slice_bytes, index))
                        
                        # 将所有切片任务并发执行
                        await asyncio.gather(*tasks)
                
                    print("🎉 全部长图切片处理完成!去检查数据量吧!")
                
                if __name__ == "__main__":
                    asyncio.run(main())
                

                具体处理的图片不方便粘贴,但文件夹内的样子可以放一下。两个箭头一个是这个代码文件,一个是需要处理的图片有240多张。每一个图片都是1440宽,大概20000+像素高。

                e6896f9e-3bb3-4ce2-ab6d-f4d69474a653-image.jpeg
                4fb61e10-93b5-4a24-a0d7-083fa7de4d4d-image.jpeg
                607fa44d-73b9-481f-b183-31ba84292db7-image.jpeg

                d7a1fb79-5ec1-42a7-a425-b394dee10b95-image.jpeg

                显卡的温度和占用,只用看ID 3就行。:

                235cc17c-e7db-4da5-9d29-27d1f82faffc-image.jpeg

                显卡的占用。不同的命令显示的有所区别。 只用看ID 3就行。

                80b494c0-cb35-4fb3-9228-fda62e0ddf82-image.jpeg

                portainer 监控 docker 的截图

                1fd16328-44ce-4b97-b443-875cdcf73a0c-image.jpeg

                模型信息和docker运行的时间

                b42a4ac7-762e-4d10-af26-6e087ea0f687-image.jpeg

                可以看到全程这个GPU的占用率都在95%以上。 时间用了16个小时。 一直没停。 结论是:这卡目前稳定性还是相当NB的,当然,也可能是和我的任务复杂程度有关系?现在是6个并发数,同时处理6个图片。这是第一批。第二批我会尝试加大并发处理量来再跑跑。

                1 条回复 最后回复
                0
                • sirwangS 离线
                  sirwangS 离线
                  sirwang
                  编写于 最后由 编辑
                  #55

                  7e848e7d-b4ba-4c40-aefd-9c2587af09f0-image.jpeg

                  忘了贴最终的数据量了。 请原谅我的打码效果.... 哇哈哈哈
                  f74e0ebf-63ec-4cb1-9ac8-f59c165d578c-image.jpeg

                  下边这张,是在linux上的截图,文件的创建时间是昨天上午的11.36,但在创建文件之前,代码已经运行了一个小时了,它得去把这200多个文件全部都截取成一个一个的小块才能读取数据OCR数据。所以文件时间就晚了一个小时。

                  terryT 1 条回复 最后回复
                  0
                  • 系统 取消固定了该主题
                  • sirwangS sirwang

                    7e848e7d-b4ba-4c40-aefd-9c2587af09f0-image.jpeg

                    忘了贴最终的数据量了。 请原谅我的打码效果.... 哇哈哈哈
                    f74e0ebf-63ec-4cb1-9ac8-f59c165d578c-image.jpeg

                    下边这张,是在linux上的截图,文件的创建时间是昨天上午的11.36,但在创建文件之前,代码已经运行了一个小时了,它得去把这200多个文件全部都截取成一个一个的小块才能读取数据OCR数据。所以文件时间就晚了一个小时。

                    terryT 离线
                    terryT 离线
                    terry
                    编写于 最后由 编辑
                    #56

                    @sirwang 哥这个帖子太长了,换个帖子,都刷到好几页了。

                    油管:https://www.youtube.com/@抡锤者

                    sirwangS 1 条回复 最后回复
                    0
                    • terryT terry

                      @sirwang 哥这个帖子太长了,换个帖子,都刷到好几页了。

                      sirwangS 离线
                      sirwangS 离线
                      sirwang
                      编写于 最后由 编辑
                      #57

                      @terry 好的,我把并发从6加到了16,明天看效果。看看它会不会爆掉,明天别的版块开新贴对比汇报吧。

                      1 条回复 最后回复
                      0
                      • sirwangS sirwang 被引用 于这个主题

                      你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                      厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                      有了你的建议,这篇帖子会更精彩哦 💗

                      注册 登录
                      回复
                      • 在新帖中回复
                      登录后回复
                      • 从旧到新
                      • 从新到旧
                      • 最多赞同


                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门
                      • 用户
                      • 群组