Tag: 预取

如何使用张量stream中的自定义python函数预取数据

我正在尝试预取训练数据以隐藏I / O延迟。 我想写自定义的Python代码,从磁盘加载数据并预处理数据(例如通过添加上下文窗口)。 换句话说,一个线程进行数据预处理,另一个线程进行训练。 这在TensorFlow中可能吗? 更新:我有一个基于@ mrry示例的工作示例。 import numpy as np import tensorflow as tf import threading BATCH_SIZE = 5 TRAINING_ITERS = 4100 feature_input = tf.placeholder(tf.float32, shape=[128]) label_input = tf.placeholder(tf.float32, shape=[128]) q = tf.FIFOQueue(200, [tf.float32, tf.float32], shapes=[[128], [128]]) enqueue_op = q.enqueue([label_input, feature_input]) label_batch, feature_batch = q.dequeue_many(BATCH_SIZE) c = tf.reshape(feature_batch, [BATCH_SIZE, 128]) + tf.reshape(label_batch, [BATCH_SIZE, […]

预取示例?

任何人都可以举一个例子或链接到一个在GCC中使用__builtin_prefetch的例子(或者只是一般的asm指令prefetcht0)来获得实质的性能优势吗? 特别是,我希望例子符合以下标准: 这是一个简单,小巧,独立的例子。 删除__builtin_prefetch指令会导致性能下降。 将__builtin_prefetch指令replace为相应的内存访问会导致性能下降。 也就是说,我想最短的例子显示__builtin_prefetch执行优化,没有它不能pipe理。

为什么django的prefetch_related()只能和all()而不是filter()一起工作?

假设我有这个模型: class PhotoAlbum(models.Model): title = models.CharField(max_length=128) author = models.CharField(max_length=128) class Photo(models.Model): album = models.ForeignKey('PhotoAlbum') format = models.IntegerField() 现在,如果我想有效地查看专辑子集中的照片子集。 我这样做: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: somePhotos = a.photo_set.all() 这只有两个查询,这是我所期望的(一个拿到相册,然后像`SELECT * IN photos WHERE photoalbum_id IN()。 一切都很好。 但是,如果我这样做: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: somePhotos = a.photo_set.filter(format=1) 然后它用WHERE format = 1做了大量的查询! 我做错了什么或是Django不够聪明,意识到它已经提取所有的照片,并可以在Python中过滤它们? […]

如何以编程方式禁用硬件预取?

我想以编程方式禁用硬件预取。 从使用硬件实现的预取程序优化英特尔®酷睿™微体系结构上的应用程序性能以及如何在32位英特尔®体系结构上进行硬件和软件预取之间进行select ,我需要更新MSR以禁用硬件预取function。 这是一个相关的片段: “DPL Prefetch和L2 Streaming Prefetch设置也可以通过编写一个设备驱动实用程序来改变IA32_MISC_ENABLE寄存器 – MSR 0x1A0的位,从而以编程方式进行更改,这种实用工具可以启用或禁用预取机制,而不需要任何服务器停机。 下表显示IA32_MISC_ENABLE MSR中为了控制DPL和L2stream预取而必须更改的位: Prefetcher Type MSR (0x1A0) Bit Value DPL (Hardware Prefetch) Bit 9 0 = Enable 1 = Disable L2 Streamer (Adjacent Cache Line Prefetch) Bit 19 0 = Enable 1 = Disable" 我尝试使用http://etallen.com/msr.html,但没有奏效。 我也尝试直接在asm/msr.h使用wrmsr ,但是那段错误。 我试图在一个内核模块中做这个…并杀死了机器。 顺便说一句 – 我正在使用内核2.6.18-92.el5,它有MSR链接在内核中: $ grep -i msr […]